| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- # SPDX-License-Identifier: GPL-2.0-only
- menu "Kexec and crash features"
- config CRASH_RESERVE
- bool
- config VMCORE_INFO
- bool
- config KEXEC_CORE
- bool
- config KEXEC_ELF
- bool
- config HAVE_IMA_KEXEC
- bool
- config KEXEC
- bool "Enable kexec system call"
- depends on ARCH_SUPPORTS_KEXEC
- select KEXEC_CORE
- help
- kexec is a system call that implements the ability to shutdown your
- current kernel, and to start another kernel. It is like a reboot
- but it is independent of the system firmware. And like a reboot
- you can start any kernel with it, not just Linux.
- The name comes from the similarity to the exec system call.
- It is an ongoing process to be certain the hardware in a machine
- is properly shutdown, so do not be surprised if this code does not
- initially work for you. As of this writing the exact hardware
- interface is strongly in flux, so no good recommendation can be
- made.
- config KEXEC_FILE
- bool "Enable kexec file based system call"
- depends on ARCH_SUPPORTS_KEXEC_FILE
- select CRYPTO
- select CRYPTO_SHA256
- select KEXEC_CORE
- help
- This is new version of kexec system call. This system call is
- file based and takes file descriptors as system call argument
- for kernel and initramfs as opposed to list of segments as
- accepted by kexec system call.
- config KEXEC_SIG
- bool "Verify kernel signature during kexec_file_load() syscall"
- depends on ARCH_SUPPORTS_KEXEC_SIG
- depends on KEXEC_FILE
- help
- This option makes the kexec_file_load() syscall check for a valid
- signature of the kernel image. The image can still be loaded without
- a valid signature unless you also enable KEXEC_SIG_FORCE, though if
- there's a signature that we can check, then it must be valid.
- In addition to this option, you need to enable signature
- verification for the corresponding kernel image type being
- loaded in order for this to work.
- config KEXEC_SIG_FORCE
- bool "Require a valid signature in kexec_file_load() syscall"
- depends on ARCH_SUPPORTS_KEXEC_SIG_FORCE
- depends on KEXEC_SIG
- help
- This option makes kernel signature verification mandatory for
- the kexec_file_load() syscall.
- config KEXEC_IMAGE_VERIFY_SIG
- bool "Enable Image signature verification support (ARM)"
- default ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG
- depends on ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG
- depends on KEXEC_SIG
- depends on EFI && SIGNED_PE_FILE_VERIFICATION
- help
- Enable Image signature verification support.
- config KEXEC_BZIMAGE_VERIFY_SIG
- bool "Enable bzImage signature verification support"
- depends on ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG
- depends on KEXEC_SIG
- depends on SIGNED_PE_FILE_VERIFICATION
- select SYSTEM_TRUSTED_KEYRING
- help
- Enable bzImage signature verification support.
- config KEXEC_JUMP
- bool "kexec jump"
- depends on ARCH_SUPPORTS_KEXEC_JUMP
- depends on KEXEC && HIBERNATION
- help
- Jump between original kernel and kexeced kernel and invoke
- code in physical address mode via KEXEC
- config CRASH_DUMP
- bool "kernel crash dumps"
- default ARCH_DEFAULT_CRASH_DUMP
- depends on ARCH_SUPPORTS_CRASH_DUMP
- depends on KEXEC_CORE
- select VMCORE_INFO
- select CRASH_RESERVE
- help
- Generate crash dump after being started by kexec.
- This should be normally only set in special crash dump kernels
- which are loaded in the main kernel with kexec-tools into
- a specially reserved region and then later executed after
- a crash by kdump/kexec. The crash dump kernel must be compiled
- to a memory address not used by the main kernel or BIOS using
- PHYSICAL_START, or it must be built as a relocatable image
- (CONFIG_RELOCATABLE=y).
- For more details see Documentation/admin-guide/kdump/kdump.rst
- For s390, this option also enables zfcpdump.
- See also <file:Documentation/arch/s390/zfcpdump.rst>
- config CRASH_HOTPLUG
- bool "Update the crash elfcorehdr on system configuration changes"
- default y
- depends on CRASH_DUMP && (HOTPLUG_CPU || MEMORY_HOTPLUG)
- depends on ARCH_SUPPORTS_CRASH_HOTPLUG
- help
- Enable direct update to the crash elfcorehdr (which contains
- the list of CPUs and memory regions to be dumped upon a crash)
- in response to hot plug/unplug or online/offline of CPUs or
- memory. This is a much more advanced approach than userspace
- attempting that.
- If unsure, say Y.
- config CRASH_MAX_MEMORY_RANGES
- int "Specify the maximum number of memory regions for the elfcorehdr"
- default 8192
- depends on CRASH_HOTPLUG
- help
- For the kexec_file_load() syscall path, specify the maximum number of
- memory regions that the elfcorehdr buffer/segment can accommodate.
- These regions are obtained via walk_system_ram_res(); eg. the
- 'System RAM' entries in /proc/iomem.
- This value is combined with NR_CPUS_DEFAULT and multiplied by
- sizeof(Elf64_Phdr) to determine the final elfcorehdr memory buffer/
- segment size.
- The value 8192, for example, covers a (sparsely populated) 1TiB system
- consisting of 128MiB memblocks, while resulting in an elfcorehdr
- memory buffer/segment size under 1MiB. This represents a sane choice
- to accommodate both baremetal and virtual machine configurations.
- For the kexec_load() syscall path, CRASH_MAX_MEMORY_RANGES is part of
- the computation behind the value provided through the
- /sys/kernel/crash_elfcorehdr_size attribute.
- endmenu
|