| # 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 |
| 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 |
| 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. |
| |
| endmenu |