mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-03-03 18:28:01 +01:00
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>
92 lines
2.9 KiB
Plaintext
92 lines
2.9 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
menu "Live Update and Kexec HandOver"
|
|
depends on !DEFERRED_STRUCT_PAGE_INIT
|
|
|
|
config KEXEC_HANDOVER
|
|
bool "kexec handover"
|
|
depends on ARCH_SUPPORTS_KEXEC_HANDOVER && ARCH_SUPPORTS_KEXEC_FILE
|
|
depends on !DEFERRED_STRUCT_PAGE_INIT
|
|
select MEMBLOCK_KHO_SCRATCH
|
|
select KEXEC_FILE
|
|
select LIBFDT
|
|
select CMA
|
|
help
|
|
Allow kexec to hand over state across kernels by generating and
|
|
passing additional metadata to the target kernel. This is useful
|
|
to keep data or state alive across the kexec. For this to work,
|
|
both source and target kernels need to have this option enabled.
|
|
|
|
config KEXEC_HANDOVER_DEBUG
|
|
bool "Enable Kexec Handover debug checks"
|
|
depends on KEXEC_HANDOVER
|
|
help
|
|
This option enables extra sanity checks for the Kexec Handover
|
|
subsystem. Since, KHO performance is crucial in live update
|
|
scenarios and the extra code might be adding overhead it is
|
|
only optionally enabled.
|
|
|
|
config KEXEC_HANDOVER_DEBUGFS
|
|
bool "kexec handover debugfs interface"
|
|
default KEXEC_HANDOVER
|
|
depends on KEXEC_HANDOVER
|
|
select DEBUG_FS
|
|
help
|
|
Allow to control kexec handover device tree via debugfs
|
|
interface, i.e. finalize the state or aborting the finalization.
|
|
Also, enables inspecting the KHO fdt trees with the debugfs binary
|
|
blobs.
|
|
|
|
config KEXEC_HANDOVER_ENABLE_DEFAULT
|
|
bool "Enable kexec handover by default"
|
|
depends on KEXEC_HANDOVER
|
|
help
|
|
Enable Kexec Handover by default. This avoids the need to
|
|
explicitly pass 'kho=on' on the kernel command line.
|
|
|
|
This is useful for systems where KHO is a prerequisite for other
|
|
features, such as Live Update, ensuring the mechanism is always
|
|
active.
|
|
|
|
The default behavior can still be overridden at boot time by
|
|
passing 'kho=off'.
|
|
|
|
config LIVEUPDATE
|
|
bool "Live Update Orchestrator"
|
|
depends on KEXEC_HANDOVER
|
|
help
|
|
Enable the Live Update Orchestrator. Live Update is a mechanism,
|
|
typically based on kexec, that allows the kernel to be updated
|
|
while keeping selected devices operational across the transition.
|
|
These devices are intended to be reclaimed by the new kernel and
|
|
re-attached to their original workload without requiring a device
|
|
reset.
|
|
|
|
Ability to handover a device from current to the next kernel depends
|
|
on specific support within device drivers and related kernel
|
|
subsystems.
|
|
|
|
This feature primarily targets virtual machine hosts to quickly update
|
|
the kernel hypervisor with minimal disruption to the running virtual
|
|
machines.
|
|
|
|
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
|