| # SPDX-License-Identifier: GPL-2.0-only | |
| menu "Live Update and Kexec HandOver" | |
| config KEXEC_HANDOVER | |
| bool "kexec handover" | |
| depends on ARCH_SUPPORTS_KEXEC_HANDOVER && ARCH_SUPPORTS_KEXEC_FILE | |
| 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 |