Message ID | 20230706222027.189117-12-eric.devolder@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | refactor Kconfig to consolidate KEXEC and CRASH options | expand |
On Thu, 06 Jul 2023 15:20:25 PDT (-0700), eric.devolder@oracle.com wrote: > The kexec and crash kernel options are provided in the common > kernel/Kconfig.kexec. Utilize the common options and provide > the ARCH_SUPPORTS_ and ARCH_SELECTS_ entries to recreate the > equivalent set of KEXEC and CRASH options. > > Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> > --- > arch/riscv/Kconfig | 44 +++++++++++++------------------------------- > 1 file changed, 13 insertions(+), 31 deletions(-) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index b49793cf34eb..8a3af850597a 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -647,48 +647,30 @@ config RISCV_BOOT_SPINWAIT > > If unsure what to do here, say N. > > -config KEXEC > - bool "Kexec system call" > - depends on MMU > +config ARCH_SUPPORTS_KEXEC > + def_bool MMU > + > +config ARCH_SELECTS_KEXEC > + def_bool y > + depends on KEXEC > select HOTPLUG_CPU if SMP > - 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. > +config ARCH_SUPPORTS_KEXEC_FILE > + def_bool 64BIT && MMU > > -config KEXEC_FILE > - bool "kexec file based systmem call" > - depends on 64BIT && MMU > +config ARCH_SELECTS_KEXEC_FILE > + def_bool y > + depends on KEXEC_FILE > select HAVE_IMA_KEXEC if IMA > - select KEXEC_CORE > select KEXEC_ELF > - 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 previous system call. > - > - If you don't know what to do here, say Y. > > config ARCH_HAS_KEXEC_PURGATORY > def_bool KEXEC_FILE > depends on CRYPTO=y > depends on CRYPTO_SHA256=y > > -config CRASH_DUMP > - bool "Build kdump crash kernel" > - 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. > - > - For more details see Documentation/admin-guide/kdump/kdump.rst > +config ARCH_SUPPORTS_CRASH_DUMP > + def_bool y > > config COMPAT > bool "Kernel support for 32-bit U-mode" Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
On 7/6/23 17:32, Palmer Dabbelt wrote: > On Thu, 06 Jul 2023 15:20:25 PDT (-0700), eric.devolder@oracle.com wrote: >> The kexec and crash kernel options are provided in the common >> kernel/Kconfig.kexec. Utilize the common options and provide >> the ARCH_SUPPORTS_ and ARCH_SELECTS_ entries to recreate the >> equivalent set of KEXEC and CRASH options. >> >> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> >> --- >> arch/riscv/Kconfig | 44 +++++++++++++------------------------------- >> 1 file changed, 13 insertions(+), 31 deletions(-) >> >> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig >> index b49793cf34eb..8a3af850597a 100644 >> --- a/arch/riscv/Kconfig >> +++ b/arch/riscv/Kconfig >> @@ -647,48 +647,30 @@ config RISCV_BOOT_SPINWAIT >> >> If unsure what to do here, say N. >> >> -config KEXEC >> - bool "Kexec system call" >> - depends on MMU >> +config ARCH_SUPPORTS_KEXEC >> + def_bool MMU >> + >> +config ARCH_SELECTS_KEXEC >> + def_bool y >> + depends on KEXEC >> select HOTPLUG_CPU if SMP >> - 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. >> +config ARCH_SUPPORTS_KEXEC_FILE >> + def_bool 64BIT && MMU >> >> -config KEXEC_FILE >> - bool "kexec file based systmem call" >> - depends on 64BIT && MMU >> +config ARCH_SELECTS_KEXEC_FILE >> + def_bool y >> + depends on KEXEC_FILE >> select HAVE_IMA_KEXEC if IMA >> - select KEXEC_CORE >> select KEXEC_ELF >> - 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 previous system call. >> - >> - If you don't know what to do here, say Y. >> >> config ARCH_HAS_KEXEC_PURGATORY >> def_bool KEXEC_FILE >> depends on CRYPTO=y >> depends on CRYPTO_SHA256=y >> >> -config CRASH_DUMP >> - bool "Build kdump crash kernel" >> - 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. >> - >> - For more details see Documentation/admin-guide/kdump/kdump.rst >> +config ARCH_SUPPORTS_CRASH_DUMP >> + def_bool y >> >> config COMPAT >> bool "Kernel support for 32-bit U-mode" > > Acked-by: Palmer Dabbelt <palmer@rivosinc.com> Thank you Palmer! eric
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index b49793cf34eb..8a3af850597a 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -647,48 +647,30 @@ config RISCV_BOOT_SPINWAIT If unsure what to do here, say N. -config KEXEC - bool "Kexec system call" - depends on MMU +config ARCH_SUPPORTS_KEXEC + def_bool MMU + +config ARCH_SELECTS_KEXEC + def_bool y + depends on KEXEC select HOTPLUG_CPU if SMP - 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. +config ARCH_SUPPORTS_KEXEC_FILE + def_bool 64BIT && MMU -config KEXEC_FILE - bool "kexec file based systmem call" - depends on 64BIT && MMU +config ARCH_SELECTS_KEXEC_FILE + def_bool y + depends on KEXEC_FILE select HAVE_IMA_KEXEC if IMA - select KEXEC_CORE select KEXEC_ELF - 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 previous system call. - - If you don't know what to do here, say Y. config ARCH_HAS_KEXEC_PURGATORY def_bool KEXEC_FILE depends on CRYPTO=y depends on CRYPTO_SHA256=y -config CRASH_DUMP - bool "Build kdump crash kernel" - 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. - - For more details see Documentation/admin-guide/kdump/kdump.rst +config ARCH_SUPPORTS_CRASH_DUMP + def_bool y config COMPAT bool "Kernel support for 32-bit U-mode"
The kexec and crash kernel options are provided in the common kernel/Kconfig.kexec. Utilize the common options and provide the ARCH_SUPPORTS_ and ARCH_SELECTS_ entries to recreate the equivalent set of KEXEC and CRASH options. Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> --- arch/riscv/Kconfig | 44 +++++++++++++------------------------------- 1 file changed, 13 insertions(+), 31 deletions(-)