Message ID | 20211123124646.1995-9-thunder.leizhen@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | support reserving crashkernel above 4G on arm64 kdump | expand |
On Tue, Nov 23, 2021 at 08:46:43PM +0800, Zhen Lei wrote: > diff --git a/arch/Kconfig b/arch/Kconfig > index 26b8ed11639da46..19256aa924c3b2c 100644 > --- a/arch/Kconfig > +++ b/arch/Kconfig > @@ -24,6 +24,9 @@ config KEXEC_ELF > config HAVE_IMA_KEXEC > bool > > +config ARCH_WANT_RESERVE_CRASH_KERNEL > + bool > + > config SET_FS > bool > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index c4207cf9bb17ffb..4b99efa36da3793 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -95,6 +95,7 @@ config ARM64 > select ARCH_WANT_FRAME_POINTERS > select ARCH_WANT_HUGE_PMD_SHARE if ARM64_4K_PAGES || (ARM64_16K_PAGES && !ARM64_VA_BITS_36) > select ARCH_WANT_LD_ORPHAN_WARN > + select ARCH_WANT_RESERVE_CRASH_KERNEL if KEXEC_CORE > select ARCH_WANTS_NO_INSTR > select ARCH_HAS_UBSAN_SANITIZE_ALL > select ARM_AMBA > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 7399327d1eff79d..528034b4276ecf8 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -12,6 +12,7 @@ config X86_32 > depends on !64BIT > # Options that are inherently 32-bit kernel only: > select ARCH_WANT_IPC_PARSE_VERSION > + select ARCH_WANT_RESERVE_CRASH_KERNEL if KEXEC_CORE > select CLKSRC_I8253 > select CLONE_BACKWARDS > select GENERIC_VDSO_32 > @@ -28,6 +29,7 @@ config X86_64 > select ARCH_HAS_GIGANTIC_PAGE > select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 > select ARCH_USE_CMPXCHG_LOCKREF > + select ARCH_WANT_RESERVE_CRASH_KERNEL if KEXEC_CORE > select HAVE_ARCH_SOFT_DIRTY > select MODULES_USE_ELF_RELA > select NEED_DMA_MAP_STATE > diff --git a/kernel/crash_core.c b/kernel/crash_core.c > index 4dc2643fcbccf99..b23cfc0ca8905fd 100644 > --- a/kernel/crash_core.c > +++ b/kernel/crash_core.c > @@ -321,9 +321,7 @@ int __init parse_crashkernel_low(char *cmdline, > * --------- Crashkernel reservation ------------------------------ > */ > > -#ifdef CONFIG_KEXEC_CORE > - > -#if defined(CONFIG_X86) || defined(CONFIG_ARM64) > +#ifdef CONFIG_ARCH_WANT_RESERVE_CRASH_KERNEL > static int __init reserve_crashkernel_low(void) > { > #ifdef CONFIG_64BIT > @@ -451,8 +449,7 @@ void __init reserve_crashkernel(void) > crashk_res.start = crash_base; > crashk_res.end = crash_base + crash_size - 1; > } > -#endif > -#endif /* CONFIG_KEXEC_CORE */ > +#endif /* CONFIG_ARCH_WANT_RESERVE_CRASH_KERNEL */ Nitpick mostly but it may simplify the patches if the x86, arch/Kconfig and crash_core.c changes here could be moved to patch 5. The remaining select for arm64 should be moved to patch 7 and drop the #if change in that patch. This way we can keep the x86 patches on a separate branch. Thanks.
On 2021/12/9 1:09, Catalin Marinas wrote: > On Tue, Nov 23, 2021 at 08:46:43PM +0800, Zhen Lei wrote: >> diff --git a/arch/Kconfig b/arch/Kconfig >> index 26b8ed11639da46..19256aa924c3b2c 100644 >> --- a/arch/Kconfig >> +++ b/arch/Kconfig >> @@ -24,6 +24,9 @@ config KEXEC_ELF >> config HAVE_IMA_KEXEC >> bool >> >> +config ARCH_WANT_RESERVE_CRASH_KERNEL >> + bool >> + >> config SET_FS >> bool >> >> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig >> index c4207cf9bb17ffb..4b99efa36da3793 100644 >> --- a/arch/arm64/Kconfig >> +++ b/arch/arm64/Kconfig >> @@ -95,6 +95,7 @@ config ARM64 >> select ARCH_WANT_FRAME_POINTERS >> select ARCH_WANT_HUGE_PMD_SHARE if ARM64_4K_PAGES || (ARM64_16K_PAGES && !ARM64_VA_BITS_36) >> select ARCH_WANT_LD_ORPHAN_WARN >> + select ARCH_WANT_RESERVE_CRASH_KERNEL if KEXEC_CORE >> select ARCH_WANTS_NO_INSTR >> select ARCH_HAS_UBSAN_SANITIZE_ALL >> select ARM_AMBA >> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig >> index 7399327d1eff79d..528034b4276ecf8 100644 >> --- a/arch/x86/Kconfig >> +++ b/arch/x86/Kconfig >> @@ -12,6 +12,7 @@ config X86_32 >> depends on !64BIT >> # Options that are inherently 32-bit kernel only: >> select ARCH_WANT_IPC_PARSE_VERSION >> + select ARCH_WANT_RESERVE_CRASH_KERNEL if KEXEC_CORE >> select CLKSRC_I8253 >> select CLONE_BACKWARDS >> select GENERIC_VDSO_32 >> @@ -28,6 +29,7 @@ config X86_64 >> select ARCH_HAS_GIGANTIC_PAGE >> select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 >> select ARCH_USE_CMPXCHG_LOCKREF >> + select ARCH_WANT_RESERVE_CRASH_KERNEL if KEXEC_CORE >> select HAVE_ARCH_SOFT_DIRTY >> select MODULES_USE_ELF_RELA >> select NEED_DMA_MAP_STATE >> diff --git a/kernel/crash_core.c b/kernel/crash_core.c >> index 4dc2643fcbccf99..b23cfc0ca8905fd 100644 >> --- a/kernel/crash_core.c >> +++ b/kernel/crash_core.c >> @@ -321,9 +321,7 @@ int __init parse_crashkernel_low(char *cmdline, >> * --------- Crashkernel reservation ------------------------------ >> */ >> >> -#ifdef CONFIG_KEXEC_CORE >> - >> -#if defined(CONFIG_X86) || defined(CONFIG_ARM64) >> +#ifdef CONFIG_ARCH_WANT_RESERVE_CRASH_KERNEL >> static int __init reserve_crashkernel_low(void) >> { >> #ifdef CONFIG_64BIT >> @@ -451,8 +449,7 @@ void __init reserve_crashkernel(void) >> crashk_res.start = crash_base; >> crashk_res.end = crash_base + crash_size - 1; >> } >> -#endif >> -#endif /* CONFIG_KEXEC_CORE */ >> +#endif /* CONFIG_ARCH_WANT_RESERVE_CRASH_KERNEL */ > > Nitpick mostly but it may simplify the patches if the x86, arch/Kconfig > and crash_core.c changes here could be moved to patch 5. The remaining > select for arm64 should be moved to patch 7 and drop the #if change in > that patch. > > This way we can keep the x86 patches on a separate branch. That's a good suggestion. I will do it. > > Thanks. >
diff --git a/arch/Kconfig b/arch/Kconfig index 26b8ed11639da46..19256aa924c3b2c 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -24,6 +24,9 @@ config KEXEC_ELF config HAVE_IMA_KEXEC bool +config ARCH_WANT_RESERVE_CRASH_KERNEL + bool + config SET_FS bool diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index c4207cf9bb17ffb..4b99efa36da3793 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -95,6 +95,7 @@ config ARM64 select ARCH_WANT_FRAME_POINTERS select ARCH_WANT_HUGE_PMD_SHARE if ARM64_4K_PAGES || (ARM64_16K_PAGES && !ARM64_VA_BITS_36) select ARCH_WANT_LD_ORPHAN_WARN + select ARCH_WANT_RESERVE_CRASH_KERNEL if KEXEC_CORE select ARCH_WANTS_NO_INSTR select ARCH_HAS_UBSAN_SANITIZE_ALL select ARM_AMBA diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 7399327d1eff79d..528034b4276ecf8 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -12,6 +12,7 @@ config X86_32 depends on !64BIT # Options that are inherently 32-bit kernel only: select ARCH_WANT_IPC_PARSE_VERSION + select ARCH_WANT_RESERVE_CRASH_KERNEL if KEXEC_CORE select CLKSRC_I8253 select CLONE_BACKWARDS select GENERIC_VDSO_32 @@ -28,6 +29,7 @@ config X86_64 select ARCH_HAS_GIGANTIC_PAGE select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 select ARCH_USE_CMPXCHG_LOCKREF + select ARCH_WANT_RESERVE_CRASH_KERNEL if KEXEC_CORE select HAVE_ARCH_SOFT_DIRTY select MODULES_USE_ELF_RELA select NEED_DMA_MAP_STATE diff --git a/kernel/crash_core.c b/kernel/crash_core.c index 4dc2643fcbccf99..b23cfc0ca8905fd 100644 --- a/kernel/crash_core.c +++ b/kernel/crash_core.c @@ -321,9 +321,7 @@ int __init parse_crashkernel_low(char *cmdline, * --------- Crashkernel reservation ------------------------------ */ -#ifdef CONFIG_KEXEC_CORE - -#if defined(CONFIG_X86) || defined(CONFIG_ARM64) +#ifdef CONFIG_ARCH_WANT_RESERVE_CRASH_KERNEL static int __init reserve_crashkernel_low(void) { #ifdef CONFIG_64BIT @@ -451,8 +449,7 @@ void __init reserve_crashkernel(void) crashk_res.start = crash_base; crashk_res.end = crash_base + crash_size - 1; } -#endif -#endif /* CONFIG_KEXEC_CORE */ +#endif /* CONFIG_ARCH_WANT_RESERVE_CRASH_KERNEL */ Elf_Word *append_elf_note(Elf_Word *buf, char *name, unsigned int type, void *data, size_t data_len)