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 <[email protected]>
---
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"
--
2.31.1
On Thu, 06 Jul 2023 15:20:25 PDT (-0700), [email protected] 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 <[email protected]>
> ---
> 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 <[email protected]>
On 7/6/23 17:32, Palmer Dabbelt wrote:
> On Thu, 06 Jul 2023 15:20:25 PDT (-0700), [email protected] 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 <[email protected]>
>> ---
>> 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 <[email protected]>
Thank you Palmer!
eric