Re: [PATCH v5 11/13] riscv/kexec: refactor for kernel/Kconfig.kexec

Eric DeVolder
2023-07-07T13:04:19Z

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