148a1b232SPasha Tatashin# SPDX-License-Identifier: GPL-2.0-only 248a1b232SPasha Tatashin 348a1b232SPasha Tatashinmenu "Live Update and Kexec HandOver" 448a1b232SPasha Tatashin 548a1b232SPasha Tatashinconfig KEXEC_HANDOVER 648a1b232SPasha Tatashin bool "kexec handover" 748a1b232SPasha Tatashin depends on ARCH_SUPPORTS_KEXEC_HANDOVER && ARCH_SUPPORTS_KEXEC_FILE 848a1b232SPasha Tatashin select MEMBLOCK_KHO_SCRATCH 948a1b232SPasha Tatashin select KEXEC_FILE 1048a1b232SPasha Tatashin select LIBFDT 1148a1b232SPasha Tatashin select CMA 1248a1b232SPasha Tatashin help 1348a1b232SPasha Tatashin Allow kexec to hand over state across kernels by generating and 1448a1b232SPasha Tatashin passing additional metadata to the target kernel. This is useful 1548a1b232SPasha Tatashin to keep data or state alive across the kexec. For this to work, 1648a1b232SPasha Tatashin both source and target kernels need to have this option enabled. 1748a1b232SPasha Tatashin 1848a1b232SPasha Tatashinconfig KEXEC_HANDOVER_DEBUG 1948a1b232SPasha Tatashin bool "Enable Kexec Handover debug checks" 2048a1b232SPasha Tatashin depends on KEXEC_HANDOVER 2148a1b232SPasha Tatashin help 2248a1b232SPasha Tatashin This option enables extra sanity checks for the Kexec Handover 2348a1b232SPasha Tatashin subsystem. Since, KHO performance is crucial in live update 2448a1b232SPasha Tatashin scenarios and the extra code might be adding overhead it is 2548a1b232SPasha Tatashin only optionally enabled. 2648a1b232SPasha Tatashin 2748a1b232SPasha Tatashinconfig KEXEC_HANDOVER_DEBUGFS 2848a1b232SPasha Tatashin bool "kexec handover debugfs interface" 2948a1b232SPasha Tatashin default KEXEC_HANDOVER 3048a1b232SPasha Tatashin depends on KEXEC_HANDOVER 3148a1b232SPasha Tatashin select DEBUG_FS 3248a1b232SPasha Tatashin help 3348a1b232SPasha Tatashin Allow to control kexec handover device tree via debugfs 3448a1b232SPasha Tatashin interface, i.e. finalize the state or aborting the finalization. 3548a1b232SPasha Tatashin Also, enables inspecting the KHO fdt trees with the debugfs binary 3648a1b232SPasha Tatashin blobs. 3748a1b232SPasha Tatashin 387bd3643fSPasha Tatashinconfig KEXEC_HANDOVER_ENABLE_DEFAULT 397bd3643fSPasha Tatashin bool "Enable kexec handover by default" 407bd3643fSPasha Tatashin depends on KEXEC_HANDOVER 417bd3643fSPasha Tatashin help 427bd3643fSPasha Tatashin Enable Kexec Handover by default. This avoids the need to 437bd3643fSPasha Tatashin explicitly pass 'kho=on' on the kernel command line. 447bd3643fSPasha Tatashin 457bd3643fSPasha Tatashin This is useful for systems where KHO is a prerequisite for other 467bd3643fSPasha Tatashin features, such as Live Update, ensuring the mechanism is always 477bd3643fSPasha Tatashin active. 487bd3643fSPasha Tatashin 497bd3643fSPasha Tatashin The default behavior can still be overridden at boot time by 507bd3643fSPasha Tatashin passing 'kho=off'. 517bd3643fSPasha Tatashin 529e2fd062SPasha Tatashinconfig LIVEUPDATE 539e2fd062SPasha Tatashin bool "Live Update Orchestrator" 549e2fd062SPasha Tatashin depends on KEXEC_HANDOVER 559e2fd062SPasha Tatashin help 569e2fd062SPasha Tatashin Enable the Live Update Orchestrator. Live Update is a mechanism, 579e2fd062SPasha Tatashin typically based on kexec, that allows the kernel to be updated 589e2fd062SPasha Tatashin while keeping selected devices operational across the transition. 599e2fd062SPasha Tatashin These devices are intended to be reclaimed by the new kernel and 609e2fd062SPasha Tatashin re-attached to their original workload without requiring a device 619e2fd062SPasha Tatashin reset. 629e2fd062SPasha Tatashin 639e2fd062SPasha Tatashin Ability to handover a device from current to the next kernel depends 649e2fd062SPasha Tatashin on specific support within device drivers and related kernel 659e2fd062SPasha Tatashin subsystems. 669e2fd062SPasha Tatashin 679e2fd062SPasha Tatashin This feature primarily targets virtual machine hosts to quickly update 689e2fd062SPasha Tatashin the kernel hypervisor with minimal disruption to the running virtual 699e2fd062SPasha Tatashin machines. 709e2fd062SPasha Tatashin 719e2fd062SPasha Tatashin If unsure, say N. 729e2fd062SPasha Tatashin 73*998be0a4SPasha Tatashinconfig LIVEUPDATE_MEMFD 74*998be0a4SPasha Tatashin bool "Live update support for memfd" 75*998be0a4SPasha Tatashin depends on LIVEUPDATE 76*998be0a4SPasha Tatashin depends on MEMFD_CREATE 77*998be0a4SPasha Tatashin depends on SHMEM 78*998be0a4SPasha Tatashin default LIVEUPDATE 79*998be0a4SPasha Tatashin help 80*998be0a4SPasha Tatashin Enable live update support for memfd regions. This allows preserving 81*998be0a4SPasha Tatashin memfd-backed memory across kernel live updates. 82*998be0a4SPasha Tatashin 83*998be0a4SPasha Tatashin This can be used to back VM memory with memfds, allowing the guest 84*998be0a4SPasha Tatashin memory to persist, or for other user workloads needing to preserve 85*998be0a4SPasha Tatashin pages. 86*998be0a4SPasha Tatashin 87*998be0a4SPasha Tatashin If unsure, say N. 88*998be0a4SPasha Tatashin 8948a1b232SPasha Tatashinendmenu 90