]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
liveupdate: separate memfd support into LIVEUPDATE_MEMFD
authorPasha Tatashin <pasha.tatashin@soleen.com>
Tue, 30 Dec 2025 16:14:02 +0000 (11:14 -0500)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 27 Jan 2026 03:07:10 +0000 (19:07 -0800)
Decouple memfd preservation support from the core Live Update Orchestrator
configuration.

Previously, enabling CONFIG_LIVEUPDATE forced a dependency on CONFIG_SHMEM
and unconditionally compiled memfd_luo.o.  However, Live Update may be
used for purposes that do not require memfd-backed memory preservation.

Introduce CONFIG_LIVEUPDATE_MEMFD to gate memfd_luo.o.  This moves the
SHMEM and MEMFD_CREATE dependencies to the specific feature that needs
them, allowing the base LIVEUPDATE option to be selected independently of
shared memory support.

Link: https://lkml.kernel.org/r/20251230161402.1542099-1-pasha.tatashin@soleen.com
Signed-off-by: Pasha Tatashin <pasha.tatashin@soleen.com>
Reviewed-by: Pratyush Yadav <pratyush@kernel.org>
Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
kernel/liveupdate/Kconfig
mm/Makefile

index d2aeaf13c3acb8d68be824f34d5d9b5f98f9cb5e..1a8513f16ef7cf27f2e52568a910fdfd11f2d583 100644 (file)
@@ -54,7 +54,6 @@ config KEXEC_HANDOVER_ENABLE_DEFAULT
 config LIVEUPDATE
        bool "Live Update Orchestrator"
        depends on KEXEC_HANDOVER
-       depends on SHMEM
        help
          Enable the Live Update Orchestrator. Live Update is a mechanism,
          typically based on kexec, that allows the kernel to be updated
@@ -73,4 +72,20 @@ config LIVEUPDATE
 
          If unsure, say N.
 
+config LIVEUPDATE_MEMFD
+       bool "Live update support for memfd"
+       depends on LIVEUPDATE
+       depends on MEMFD_CREATE
+       depends on SHMEM
+       default LIVEUPDATE
+       help
+         Enable live update support for memfd regions. This allows preserving
+         memfd-backed memory across kernel live updates.
+
+         This can be used to back VM memory with memfds, allowing the guest
+         memory to persist, or for other user workloads needing to preserve
+         pages.
+
+         If unsure, say N.
+
 endmenu
index 2d0570a16e5beb9d9257cb6138a5977631c626ab..e38fcfbb805c78fb87826972bafbc52cadbafe9a 100644 (file)
@@ -100,7 +100,7 @@ obj-$(CONFIG_NUMA) += memory-tiers.o
 obj-$(CONFIG_DEVICE_MIGRATION) += migrate_device.o
 obj-$(CONFIG_TRANSPARENT_HUGEPAGE) += huge_memory.o khugepaged.o
 obj-$(CONFIG_PAGE_COUNTER) += page_counter.o
-obj-$(CONFIG_LIVEUPDATE) += memfd_luo.o
+obj-$(CONFIG_LIVEUPDATE_MEMFD) += memfd_luo.o
 obj-$(CONFIG_MEMCG_V1) += memcontrol-v1.o
 obj-$(CONFIG_MEMCG) += memcontrol.o vmpressure.o
 ifdef CONFIG_SWAP