From e18cd942c1618e0e584fe5f5df3f90cadbdbb3be Mon Sep 17 00:00:00 2001 From: Sergio Date: Sun, 30 Aug 2026 01:36:22 +0000 Subject: [PATCH] kernel: MEMCG y PSI en los tres kernels que hospedan Cards (SDD 25 H1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sin CONFIG_MEMCG el fichero memory.max no existe y arje-incarnate descarta el error: una Card pedía un tope de memoria y corría sin ninguno, dejando sólo un warn!. El x86_64_defconfig de 7.1 ya no trae MEMCG=y, así que había que pedirlo explícito. Va en tanda con PSI (que el contrato declara como wants) para pagar de una sola vez el re-hasheo: la fase configure ES la identidad del artefacto. linux.toml queda intocado a propósito — es el baseline of_tree del selfhost-verify y no hospeda Cards. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01ACUcwo9mZsE5ocYVE9npih --- recipes/linux-generic.toml | 5 +++++ recipes/linux-metal-dual.toml | 5 +++++ recipes/linux-metal.toml | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/recipes/linux-generic.toml b/recipes/linux-generic.toml index b9b6e9cf..96ccac43 100644 --- a/recipes/linux-generic.toml +++ b/recipes/linux-generic.toml @@ -37,6 +37,10 @@ link = "dynamic" [deps] build = ["flex", "bison", "m4", "openssl", "elfutils", "make"] +# SDD 25 §7-H1: `-e MEMCG -e PSI`. Sin MEMCG el fichero `memory.max` NO EXISTE y +# `arje-incarnate::cgroup` sólo emite un `warn!` ⇒ la Card corre SIN tope de memoria. Va en la +# fase configure porque el .config ES la identidad del artefacto (SDD 22 §1): esto re-hashea el +# kernel a propósito. Comprobable con `hammer kernel contract` sobre el config YA PRODUCIDO. [build.phases] configure = """ make ARCH=x86_64 defconfig && \ @@ -47,6 +51,7 @@ scripts/config -d MODULE_SIG -d MODULE_SIG_ALL -d DEBUG_INFO_BTF -d DEBUG_INFO - -e FANOTIFY -e FANOTIFY_ACCESS_PERMISSIONS \ -e OVERLAY_FS_REDIRECT_DIR -e OVERLAY_FS_INDEX -e OVERLAY_FS_XINO_AUTO -e OVERLAY_FS_METACOPY \ -e SECURITY -e SECURITY_LANDLOCK -e AUDIT -e IO_URING -e BPF_SYSCALL \ + -e MEMCG -e PSI -d PSI_DEFAULT_DISABLED \ -e VIRTIO -e VIRTIO_PCI -e VIRTIO_BLK -e VIRTIO_NET -e DRM_VIRTIO_GPU \ -e PCI -e PCIEPORTBUS -e ACPI -e FW_LOADER \ -e EXT4_FS -e SQUASHFS -e SQUASHFS_XZ -e SQUASHFS_ZSTD -e SQUASHFS_LZ4 \ diff --git a/recipes/linux-metal-dual.toml b/recipes/linux-metal-dual.toml index 6b9328ec..af62e001 100644 --- a/recipes/linux-metal-dual.toml +++ b/recipes/linux-metal-dual.toml @@ -45,6 +45,10 @@ link = "dynamic" [deps] build = ["flex", "bison", "m4", "openssl", "elfutils", "make"] +# SDD 25 §7-H1: `-e MEMCG -e PSI`. Sin MEMCG el fichero `memory.max` NO EXISTE y +# `arje-incarnate::cgroup` sólo emite un `warn!` ⇒ la Card corre SIN tope de memoria. Va en la +# fase configure porque el .config ES la identidad del artefacto (SDD 22 §1): esto re-hashea el +# kernel a propósito. Comprobable con `hammer kernel contract` sobre el config YA PRODUCIDO. [build.phases] configure = """ make ARCH=x86_64 defconfig && \ @@ -55,6 +59,7 @@ scripts/config -d MODULE_SIG -d MODULE_SIG_ALL -d DEBUG_INFO_BTF -d DEBUG_INFO - -e FANOTIFY -e FANOTIFY_ACCESS_PERMISSIONS \ -e OVERLAY_FS_REDIRECT_DIR -e OVERLAY_FS_INDEX -e OVERLAY_FS_XINO_AUTO -e OVERLAY_FS_METACOPY \ -e SECURITY -e SECURITY_LANDLOCK -e AUDIT -e IO_URING -e BPF_SYSCALL \ + -e MEMCG -e PSI -d PSI_DEFAULT_DISABLED \ -e VIRTIO -e VIRTIO_PCI -e VIRTIO_BLK -e VIRTIO_NET -e DRM_VIRTIO_GPU \ -e PCI -e PCIEPORTBUS -e ACPI -e FW_LOADER \ -e EXT4_FS -e SQUASHFS -e SQUASHFS_XZ -e SQUASHFS_ZSTD -e SQUASHFS_LZ4 \ diff --git a/recipes/linux-metal.toml b/recipes/linux-metal.toml index 2a47a864..765ddb94 100644 --- a/recipes/linux-metal.toml +++ b/recipes/linux-metal.toml @@ -98,6 +98,10 @@ link = "dynamic" [deps] build = ["flex", "bison", "m4", "openssl", "elfutils", "make"] +# SDD 25 §7-H1: `-e MEMCG -e PSI`. Sin MEMCG el fichero `memory.max` NO EXISTE y +# `arje-incarnate::cgroup` sólo emite un `warn!` ⇒ la Card corre SIN tope de memoria. Va en la +# fase configure porque el .config ES la identidad del artefacto (SDD 22 §1): esto re-hashea el +# kernel a propósito. Comprobable con `hammer kernel contract` sobre el config YA PRODUCIDO. [build.phases] configure = """ make ARCH=x86_64 defconfig && \ @@ -108,6 +112,7 @@ scripts/config -d MODULE_SIG -d MODULE_SIG_ALL -d DEBUG_INFO_BTF -d DEBUG_INFO - -e FANOTIFY -e FANOTIFY_ACCESS_PERMISSIONS \ -e OVERLAY_FS_REDIRECT_DIR -e OVERLAY_FS_INDEX -e OVERLAY_FS_XINO_AUTO -e OVERLAY_FS_METACOPY \ -e SECURITY -e SECURITY_LANDLOCK -e AUDIT -e IO_URING -e BPF_SYSCALL \ + -e MEMCG -e PSI -d PSI_DEFAULT_DISABLED \ -e NTSYNC -d PREEMPT_VOLUNTARY -e PREEMPT -e HZ_1000 -e LRU_GEN -e LRU_GEN_ENABLED \ -e ZRAM -e ZSMALLOC -e EROFS_FS -e FS_VERITY \ -e VIRTIO -e VIRTIO_PCI -e VIRTIO_BLK -e VIRTIO_NET -e EXT4_FS \