xref: /linux/kernel/liveupdate/Kconfig (revision 9d9c1cfec01cdbf24bd9322ed555713a20422115)
1# SPDX-License-Identifier: GPL-2.0-only
2
3menu "Live Update and Kexec HandOver"
4	depends on !DEFERRED_STRUCT_PAGE_INIT
5
6config KEXEC_HANDOVER
7	bool "kexec handover"
8	depends on ARCH_SUPPORTS_KEXEC_HANDOVER && ARCH_SUPPORTS_KEXEC_FILE
9	depends on !DEFERRED_STRUCT_PAGE_INIT
10	select MEMBLOCK_KHO_SCRATCH
11	select KEXEC_FILE
12	select LIBFDT
13	select CMA
14	help
15	  Allow kexec to hand over state across kernels by generating and
16	  passing additional metadata to the target kernel. This is useful
17	  to keep data or state alive across the kexec. For this to work,
18	  both source and target kernels need to have this option enabled.
19
20config KEXEC_HANDOVER_DEBUG
21	bool "Enable Kexec Handover debug checks"
22	depends on KEXEC_HANDOVER
23	help
24	  This option enables extra sanity checks for the Kexec Handover
25	  subsystem. Since, KHO performance is crucial in live update
26	  scenarios and the extra code might be adding overhead it is
27	  only optionally enabled.
28
29config KEXEC_HANDOVER_DEBUGFS
30	bool "kexec handover debugfs interface"
31	default KEXEC_HANDOVER
32	depends on KEXEC_HANDOVER
33	select DEBUG_FS
34	help
35	  Allow to control kexec handover device tree via debugfs
36	  interface, i.e. finalize the state or aborting the finalization.
37	  Also, enables inspecting the KHO fdt trees with the debugfs binary
38	  blobs.
39
40config KEXEC_HANDOVER_ENABLE_DEFAULT
41	bool "Enable kexec handover by default"
42	depends on KEXEC_HANDOVER
43	help
44	  Enable Kexec Handover by default. This avoids the need to
45	  explicitly pass 'kho=on' on the kernel command line.
46
47	  This is useful for systems where KHO is a prerequisite for other
48	  features, such as Live Update, ensuring the mechanism is always
49	  active.
50
51	  The default behavior can still be overridden at boot time by
52	  passing 'kho=off'.
53
54config LIVEUPDATE
55	bool "Live Update Orchestrator"
56	depends on KEXEC_HANDOVER
57	depends on SHMEM
58	help
59	  Enable the Live Update Orchestrator. Live Update is a mechanism,
60	  typically based on kexec, that allows the kernel to be updated
61	  while keeping selected devices operational across the transition.
62	  These devices are intended to be reclaimed by the new kernel and
63	  re-attached to their original workload without requiring a device
64	  reset.
65
66	  Ability to handover a device from current to the next kernel depends
67	  on specific support within device drivers and related kernel
68	  subsystems.
69
70	  This feature primarily targets virtual machine hosts to quickly update
71	  the kernel hypervisor with minimal disruption to the running virtual
72	  machines.
73
74	  If unsure, say N.
75
76endmenu
77