Message ID | 20240124051254.67105-6-bhe@redhat.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | Split crash out from kexec and clean up related config items | expand |
Hi Baoquan, On Wed, 2024-01-24 at 13:12 +0800, Baoquan He wrote: > By splitting CRASH_RESERVE and VMCORE_INFO out from CRASH_CORE, cleaning > up the dependency of FA_DMUMP on CRASH_DUMP, and moving crash codes from > kexec_core.c to crash_core.c, now we can rearrange CRASH_DUMP to > depend on KEXEC_CORE, and make CRASH_DUMP select CRASH_RESERVE and > VMCORE_INFO. > > KEXEC_CORE won't select CRASH_RESERVE and VMCORE_INFO any more because > KEXEC_CORE enables codes which allocate control pages, copy > kexec/kdump segments, and prepare for switching. These codes are shared > by both kexec reboot and crash dumping. > > Doing this makes codes and the corresponding config items more > logical (the right item depends on or is selected by the left item). > > PROC_KCORE -----------> VMCORE_INFO > > |----------> VMCORE_INFO > FA_DUMP----| > |----------> CRASH_RESERVE > > ---->VMCORE_INFO > / > |---->CRASH_RESERVE > KEXEC --| /| > |--> KEXEC_CORE--> CRASH_DUMP-->/-|---->PROC_VMCORE > KEXEC_FILE --| \ | > \---->CRASH_HOTPLUG > > KEXEC --| > |--> KEXEC_CORE--> kexec reboot > KEXEC_FILE --| > > Signed-off-by: Baoquan He <bhe@redhat.com> > --- > kernel/Kconfig.kexec | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/kernel/Kconfig.kexec b/kernel/Kconfig.kexec > index 8faf27043432..6c34e63c88ff 100644 > --- a/kernel/Kconfig.kexec > +++ b/kernel/Kconfig.kexec > @@ -9,8 +9,6 @@ config VMCORE_INFO > bool > > config KEXEC_CORE > - select VMCORE_INFO > - select CRASH_RESERVE > bool > > config KEXEC_ELF > @@ -99,8 +97,11 @@ config KEXEC_JUMP > > config CRASH_DUMP > bool "kernel crash dumps" > + default y > depends on ARCH_SUPPORTS_CRASH_DUMP > - select KEXEC_CORE > + 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 The change to enable CONFIG_CRASH_DUMP by default apparently broke the boot on 32-bit Power Macintosh systems which fail after GRUB with: "Error: You can't boot a kdump kernel from OF!" We may have to turn this off for 32-bit Power Macintosh systems. See this thread on debian-powerpc ML: https://lists.debian.org/debian-powerpc/2024/07/msg00001.html Thanks, Adrian
On 08/22/24 at 09:33am, John Paul Adrian Glaubitz wrote: > Hi Baoquan, > > On Wed, 2024-01-24 at 13:12 +0800, Baoquan He wrote: > > By splitting CRASH_RESERVE and VMCORE_INFO out from CRASH_CORE, cleaning > > up the dependency of FA_DMUMP on CRASH_DUMP, and moving crash codes from > > kexec_core.c to crash_core.c, now we can rearrange CRASH_DUMP to > > depend on KEXEC_CORE, and make CRASH_DUMP select CRASH_RESERVE and > > VMCORE_INFO. > > > > KEXEC_CORE won't select CRASH_RESERVE and VMCORE_INFO any more because > > KEXEC_CORE enables codes which allocate control pages, copy > > kexec/kdump segments, and prepare for switching. These codes are shared > > by both kexec reboot and crash dumping. > > > > Doing this makes codes and the corresponding config items more > > logical (the right item depends on or is selected by the left item). > > > > PROC_KCORE -----------> VMCORE_INFO > > > > |----------> VMCORE_INFO > > FA_DUMP----| > > |----------> CRASH_RESERVE > > > > ---->VMCORE_INFO > > / > > |---->CRASH_RESERVE > > KEXEC --| /| > > |--> KEXEC_CORE--> CRASH_DUMP-->/-|---->PROC_VMCORE > > KEXEC_FILE --| \ | > > \---->CRASH_HOTPLUG > > > > KEXEC --| > > |--> KEXEC_CORE--> kexec reboot > > KEXEC_FILE --| > > > > Signed-off-by: Baoquan He <bhe@redhat.com> > > --- > > kernel/Kconfig.kexec | 7 ++++--- > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > diff --git a/kernel/Kconfig.kexec b/kernel/Kconfig.kexec > > index 8faf27043432..6c34e63c88ff 100644 > > --- a/kernel/Kconfig.kexec > > +++ b/kernel/Kconfig.kexec > > @@ -9,8 +9,6 @@ config VMCORE_INFO > > bool > > > > config KEXEC_CORE > > - select VMCORE_INFO > > - select CRASH_RESERVE > > bool > > > > config KEXEC_ELF > > @@ -99,8 +97,11 @@ config KEXEC_JUMP > > > > config CRASH_DUMP > > bool "kernel crash dumps" > > + default y > > depends on ARCH_SUPPORTS_CRASH_DUMP > > - select KEXEC_CORE > > + 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 > > The change to enable CONFIG_CRASH_DUMP by default apparently broke the boot > on 32-bit Power Macintosh systems which fail after GRUB with: > > "Error: You can't boot a kdump kernel from OF!" > > We may have to turn this off for 32-bit Power Macintosh systems. > > See this thread on debian-powerpc ML: https://lists.debian.org/debian-powerpc/2024/07/msg00001.html If so, fix need be made. We may need change in ARCH_SUPPORTS_CRASH_DUMP of ppc, can you or anyone post a patch? I don't know how to identify 32-bit Power Macintosh. arch/powerpc/Kconfig: === config ARCH_SUPPORTS_CRASH_DUMP def_bool PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP) config ARCH_SELECTS_CRASH_DUMP def_bool y depends on CRASH_DUMP select RELOCATABLE if PPC64 || 44x || PPC_85xx ...... config PHYSICAL_START hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL default "0x02000000" if PPC_BOOK3S && CRASH_DUMP && !NONSTATIC_KERNEL default "0x00000000"
Hi Baoquan, On Thu, 2024-08-22 at 17:17 +0800, Baoquan He wrote: > > The change to enable CONFIG_CRASH_DUMP by default apparently broke the boot > > on 32-bit Power Macintosh systems which fail after GRUB with: > > > > "Error: You can't boot a kdump kernel from OF!" > > > > We may have to turn this off for 32-bit Power Macintosh systems. > > > > See this thread on debian-powerpc ML: https://lists.debian.org/debian-powerpc/2024/07/msg00001.html > > If so, fix need be made. > > We may need change in ARCH_SUPPORTS_CRASH_DUMP of ppc, can you or anyone > post a patch? I don't know how to identify 32-bit Power Macintosh. > > arch/powerpc/Kconfig: > === > config ARCH_SUPPORTS_CRASH_DUMP > def_bool PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP) > > config ARCH_SELECTS_CRASH_DUMP > def_bool y > depends on CRASH_DUMP > select RELOCATABLE if PPC64 || 44x || PPC_85xx > ...... > config PHYSICAL_START > hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL > default "0x02000000" if PPC_BOOK3S && CRASH_DUMP && !NONSTATIC_KERNEL > default "0x00000000" I think the architecture does support crash dumps, but I think the kernel has to be booted from kexec in this case. Booting a kernel with CRASH_DUMP enabled won't work from Open Firmware. So, I think CRASH_DUMP should just be disabled for PPC_BOOK3S_32 by default and users who want to use it on these systems, will have to enable it explicitly. Adrian
On 08/22/24 at 11:37am, John Paul Adrian Glaubitz wrote: > Hi Baoquan, > > On Thu, 2024-08-22 at 17:17 +0800, Baoquan He wrote: > > > The change to enable CONFIG_CRASH_DUMP by default apparently broke the boot > > > on 32-bit Power Macintosh systems which fail after GRUB with: > > > > > > "Error: You can't boot a kdump kernel from OF!" > > > > > > We may have to turn this off for 32-bit Power Macintosh systems. > > > > > > See this thread on debian-powerpc ML: https://lists.debian.org/debian-powerpc/2024/07/msg00001.html > > > > If so, fix need be made. > > > > We may need change in ARCH_SUPPORTS_CRASH_DUMP of ppc, can you or anyone > > post a patch? I don't know how to identify 32-bit Power Macintosh. > > > > arch/powerpc/Kconfig: > > === > > config ARCH_SUPPORTS_CRASH_DUMP > > def_bool PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP) > > > > config ARCH_SELECTS_CRASH_DUMP > > def_bool y > > depends on CRASH_DUMP > > select RELOCATABLE if PPC64 || 44x || PPC_85xx > > ...... > > config PHYSICAL_START > > hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL > > default "0x02000000" if PPC_BOOK3S && CRASH_DUMP && !NONSTATIC_KERNEL > > default "0x00000000" > > I think the architecture does support crash dumps, but I think the kernel has to > be booted from kexec in this case. Booting a kernel with CRASH_DUMP enabled won't > work from Open Firmware. So, I think CRASH_DUMP should just be disabled for > PPC_BOOK3S_32 by default and users who want to use it on these systems, will have to > enable it explicitly. If so, below patch possiblly can fix it. Can you help check if it's OK? From dd5318dc5dcd66521b31214f0e5921f258532ef8 Mon Sep 17 00:00:00 2001 From: Baoquan He <bhe@redhat.com> Date: Fri, 23 Aug 2024 07:37:38 +0800 Subject: [PATCH] powerpc/crash: do not default to enable CRASH_DUMP for PPC_BOOK3S_32 system Content-type: text/plain Recently it's reported that PowerPC macMini system failed to boot up. It's because CONFIG_CRASH_DUMP=y is set by default on the system since kernel 6.9, and that makes CONFIG_PHYSICAL_START not equaling 0 any more and causes failure of normal kernel bootup. The link of error report can be found here: https://lists.debian.org/debian-powerpc/2024/07/msg00001.html And copy the code snippet here for reference: arch/powerpc/Kconfig: ================== config KERNEL_START hex "Virtual address of kernel base" if KERNEL_START_BOOL default PAGE_OFFSET if PAGE_OFFSET_BOOL default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL default "0xc0000000" So let's stop enabling CRASH_DUMP by default on PPC_BOOK3S_32. Signed-off-by: Baoquan He <bhe@redhat.com> --- arch/powerpc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index d7b09b064a8a..dc5ca58be1d6 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -680,7 +680,7 @@ config RELOCATABLE_TEST relocation code. config ARCH_SUPPORTS_CRASH_DUMP - def_bool PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP) + def_bool PPC64 || PPC_85xx || (44x && !SMP) config ARCH_SELECTS_CRASH_DUMP def_bool y
On 2024-08-22 20:04, Baoquan He wrote: > If so, below patch possiblly can fix it. Can you help check if it's OK? That removes the possibility of enabling CRASH_DUMP on PPC_BOOK3S_32, even when booting via other mechanisms. Maybe it would be best to just make it not-default? Please take a look at this patch: From d6e5fe3a45f46f1aa01914648c443291d956de9e Mon Sep 17 00:00:00 2001 From: Dave Vasilevsky <dave@vasilevsky.ca> Date: Thu, 22 Aug 2024 20:13:46 -0400 Subject: [PATCH] powerpc: Default to CRASH_DUMP=n when Open Firmware boot is likely MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Open Firmware is unable to boot a kernel where PHYSICAL_START is non-zero, which occurs when CRASH_DUMP is on. On PPC_BOOK3S_32, the most common way of booting is Open Firmware, so most users probably don't want CRASH_DUMP. Users booting via some other mechanism can turn it on explicitly. Signed-off-by: Dave Vasilevsky <dave@vasilevsky.ca> Reported-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de> Fixes: 75bc255a7444 --- arch/arm/Kconfig | 3 +++ arch/arm64/Kconfig | 3 +++ arch/loongarch/Kconfig | 3 +++ arch/mips/Kconfig | 3 +++ arch/powerpc/Kconfig | 4 ++++ arch/riscv/Kconfig | 3 +++ arch/s390/Kconfig | 3 +++ arch/sh/Kconfig | 3 +++ arch/x86/Kconfig | 3 +++ kernel/Kconfig.kexec | 2 +- 10 files changed, 29 insertions(+), 1 deletion(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 54b2bb817a7f..200995052690 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1597,6 +1597,9 @@ config ATAGS_PROC config ARCH_SUPPORTS_CRASH_DUMP def_bool y +config ARCH_DEFAULT_CRASH_DUMP + def_bool y + config AUTO_ZRELADDR bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM default !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index a2f8ff354ca6..43e08cc8204f 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -1558,6 +1558,9 @@ config ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG config ARCH_SUPPORTS_CRASH_DUMP def_bool y +config ARCH_DEFAULT_CRASH_DUMP + def_bool y + config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION def_bool CRASH_RESERVE diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig index 70f169210b52..ce232ddcd27d 100644 --- a/arch/loongarch/Kconfig +++ b/arch/loongarch/Kconfig @@ -599,6 +599,9 @@ config ARCH_SUPPORTS_KEXEC config ARCH_SUPPORTS_CRASH_DUMP def_bool y +config ARCH_DEFAULT_CRASH_DUMP + def_bool y + config ARCH_SELECTS_CRASH_DUMP def_bool y depends on CRASH_DUMP diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 60077e576935..b547f4304d0c 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -2881,6 +2881,9 @@ config ARCH_SUPPORTS_KEXEC config ARCH_SUPPORTS_CRASH_DUMP def_bool y +config ARCH_DEFAULT_CRASH_DUMP + def_bool y + config PHYSICAL_START hex "Physical address where the kernel is loaded" default "0xffffffff84000000" diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index d7b09b064a8a..0f3c1f958eac 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -682,6 +682,10 @@ config RELOCATABLE_TEST config ARCH_SUPPORTS_CRASH_DUMP def_bool PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP) +config ARCH_DEFAULT_CRASH_DUMP + bool + default y if !PPC_BOOK3S_32 + config ARCH_SELECTS_CRASH_DUMP def_bool y depends on CRASH_DUMP diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 0f3cd7c3a436..eb247b5ee569 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -880,6 +880,9 @@ config ARCH_SUPPORTS_KEXEC_PURGATORY config ARCH_SUPPORTS_CRASH_DUMP def_bool y +config ARCH_DEFAULT_CRASH_DUMP + def_bool y + config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION def_bool CRASH_RESERVE diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index a822f952f64a..05a1fb408471 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -275,6 +275,9 @@ config ARCH_SUPPORTS_CRASH_DUMP This option also enables s390 zfcpdump. See also <file:Documentation/arch/s390/zfcpdump.rst> +config ARCH_DEFAULT_CRASH_DUMP + def_bool y + menu "Processor type and features" config HAVE_MARCH_Z10_FEATURES diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 1aa3c4a0c5b2..3a6338962636 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -549,6 +549,9 @@ config ARCH_SUPPORTS_KEXEC config ARCH_SUPPORTS_CRASH_DUMP def_bool BROKEN_ON_SMP +config ARCH_DEFAULT_CRASH_DUMP + def_bool y + config ARCH_SUPPORTS_KEXEC_JUMP def_bool y diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 007bab9f2a0e..aa4666bb9e9c 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -2087,6 +2087,9 @@ config ARCH_SUPPORTS_KEXEC_JUMP config ARCH_SUPPORTS_CRASH_DUMP def_bool X86_64 || (X86_32 && HIGHMEM) +config ARCH_DEFAULT_CRASH_DUMP + def_bool y + config ARCH_SUPPORTS_CRASH_HOTPLUG def_bool y diff --git a/kernel/Kconfig.kexec b/kernel/Kconfig.kexec index 6c34e63c88ff..4d111f871951 100644 --- a/kernel/Kconfig.kexec +++ b/kernel/Kconfig.kexec @@ -97,7 +97,7 @@ config KEXEC_JUMP config CRASH_DUMP bool "kernel crash dumps" - default y + default ARCH_DEFAULT_CRASH_DUMP depends on ARCH_SUPPORTS_CRASH_DUMP depends on KEXEC_CORE select VMCORE_INFO
On 08/22/24 at 08:41pm, Dave Vasilevsky wrote: > On 2024-08-22 20:04, Baoquan He wrote: > > If so, below patch possiblly can fix it. Can you help check if it's OK? > > That removes the possibility of enabling CRASH_DUMP on PPC_BOOK3S_32, even when booting via other mechanisms. Maybe it would be best to just make it not-default? Please take a look at this patch: > This is a good mimic of ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG and the correspondent KEXEC_IMAGE_VERIFY_SIG. It looks good to me, as long as no one complain we introduce too many knobs. Can you post this formally so that people can review it? > > From d6e5fe3a45f46f1aa01914648c443291d956de9e Mon Sep 17 00:00:00 2001 > From: Dave Vasilevsky <dave@vasilevsky.ca> > Date: Thu, 22 Aug 2024 20:13:46 -0400 > Subject: [PATCH] powerpc: Default to CRASH_DUMP=n when Open Firmware boot is > likely > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > Open Firmware is unable to boot a kernel where PHYSICAL_START is > non-zero, which occurs when CRASH_DUMP is on. > > On PPC_BOOK3S_32, the most common way of booting is Open Firmware, so > most users probably don't want CRASH_DUMP. Users booting via some > other mechanism can turn it on explicitly. > > Signed-off-by: Dave Vasilevsky <dave@vasilevsky.ca> > Reported-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de> > Fixes: 75bc255a7444 > --- > arch/arm/Kconfig | 3 +++ > arch/arm64/Kconfig | 3 +++ > arch/loongarch/Kconfig | 3 +++ > arch/mips/Kconfig | 3 +++ > arch/powerpc/Kconfig | 4 ++++ > arch/riscv/Kconfig | 3 +++ > arch/s390/Kconfig | 3 +++ > arch/sh/Kconfig | 3 +++ > arch/x86/Kconfig | 3 +++ > kernel/Kconfig.kexec | 2 +- > 10 files changed, 29 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 54b2bb817a7f..200995052690 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -1597,6 +1597,9 @@ config ATAGS_PROC > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config AUTO_ZRELADDR > bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM > default !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100) > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index a2f8ff354ca6..43e08cc8204f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -1558,6 +1558,9 @@ config ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION > def_bool CRASH_RESERVE > > diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig > index 70f169210b52..ce232ddcd27d 100644 > --- a/arch/loongarch/Kconfig > +++ b/arch/loongarch/Kconfig > @@ -599,6 +599,9 @@ config ARCH_SUPPORTS_KEXEC > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_SELECTS_CRASH_DUMP > def_bool y > depends on CRASH_DUMP > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index 60077e576935..b547f4304d0c 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -2881,6 +2881,9 @@ config ARCH_SUPPORTS_KEXEC > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config PHYSICAL_START > hex "Physical address where the kernel is loaded" > default "0xffffffff84000000" > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index d7b09b064a8a..0f3c1f958eac 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -682,6 +682,10 @@ config RELOCATABLE_TEST > config ARCH_SUPPORTS_CRASH_DUMP > def_bool PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP) > > +config ARCH_DEFAULT_CRASH_DUMP > + bool > + default y if !PPC_BOOK3S_32 > + > config ARCH_SELECTS_CRASH_DUMP > def_bool y > depends on CRASH_DUMP > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 0f3cd7c3a436..eb247b5ee569 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -880,6 +880,9 @@ config ARCH_SUPPORTS_KEXEC_PURGATORY > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION > def_bool CRASH_RESERVE > > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index a822f952f64a..05a1fb408471 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -275,6 +275,9 @@ config ARCH_SUPPORTS_CRASH_DUMP > This option also enables s390 zfcpdump. > See also <file:Documentation/arch/s390/zfcpdump.rst> > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > menu "Processor type and features" > > config HAVE_MARCH_Z10_FEATURES > diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig > index 1aa3c4a0c5b2..3a6338962636 100644 > --- a/arch/sh/Kconfig > +++ b/arch/sh/Kconfig > @@ -549,6 +549,9 @@ config ARCH_SUPPORTS_KEXEC > config ARCH_SUPPORTS_CRASH_DUMP > def_bool BROKEN_ON_SMP > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_SUPPORTS_KEXEC_JUMP > def_bool y > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 007bab9f2a0e..aa4666bb9e9c 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -2087,6 +2087,9 @@ config ARCH_SUPPORTS_KEXEC_JUMP > config ARCH_SUPPORTS_CRASH_DUMP > def_bool X86_64 || (X86_32 && HIGHMEM) > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_SUPPORTS_CRASH_HOTPLUG > def_bool y > > diff --git a/kernel/Kconfig.kexec b/kernel/Kconfig.kexec > index 6c34e63c88ff..4d111f871951 100644 > --- a/kernel/Kconfig.kexec > +++ b/kernel/Kconfig.kexec > @@ -97,7 +97,7 @@ config KEXEC_JUMP > > config CRASH_DUMP > bool "kernel crash dumps" > - default y > + default ARCH_DEFAULT_CRASH_DUMP > depends on ARCH_SUPPORTS_CRASH_DUMP > depends on KEXEC_CORE > select VMCORE_INFO > -- > 2.34.1 >
On Thu, 2024-08-22 at 20:41 -0400, Dave Vasilevsky wrote: > From d6e5fe3a45f46f1aa01914648c443291d956de9e Mon Sep 17 00:00:00 2001 > From: Dave Vasilevsky <dave@vasilevsky.ca> > Date: Thu, 22 Aug 2024 20:13:46 -0400 > Subject: [PATCH] powerpc: Default to CRASH_DUMP=n when Open Firmware boot is > likely > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > Open Firmware is unable to boot a kernel where PHYSICAL_START is > non-zero, which occurs when CRASH_DUMP is on. > > On PPC_BOOK3S_32, the most common way of booting is Open Firmware, so > most users probably don't want CRASH_DUMP. Users booting via some > other mechanism can turn it on explicitly. > > Signed-off-by: Dave Vasilevsky <dave@vasilevsky.ca> > Reported-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de> > Fixes: 75bc255a7444 > --- > arch/arm/Kconfig | 3 +++ > arch/arm64/Kconfig | 3 +++ > arch/loongarch/Kconfig | 3 +++ > arch/mips/Kconfig | 3 +++ > arch/powerpc/Kconfig | 4 ++++ > arch/riscv/Kconfig | 3 +++ > arch/s390/Kconfig | 3 +++ > arch/sh/Kconfig | 3 +++ > arch/x86/Kconfig | 3 +++ > kernel/Kconfig.kexec | 2 +- > 10 files changed, 29 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 54b2bb817a7f..200995052690 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -1597,6 +1597,9 @@ config ATAGS_PROC > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config AUTO_ZRELADDR > bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM > default !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100) > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index a2f8ff354ca6..43e08cc8204f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -1558,6 +1558,9 @@ config ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION > def_bool CRASH_RESERVE > > diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig > index 70f169210b52..ce232ddcd27d 100644 > --- a/arch/loongarch/Kconfig > +++ b/arch/loongarch/Kconfig > @@ -599,6 +599,9 @@ config ARCH_SUPPORTS_KEXEC > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_SELECTS_CRASH_DUMP > def_bool y > depends on CRASH_DUMP > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index 60077e576935..b547f4304d0c 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -2881,6 +2881,9 @@ config ARCH_SUPPORTS_KEXEC > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config PHYSICAL_START > hex "Physical address where the kernel is loaded" > default "0xffffffff84000000" > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index d7b09b064a8a..0f3c1f958eac 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -682,6 +682,10 @@ config RELOCATABLE_TEST > config ARCH_SUPPORTS_CRASH_DUMP > def_bool PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP) > > +config ARCH_DEFAULT_CRASH_DUMP > + bool > + default y if !PPC_BOOK3S_32 > + > config ARCH_SELECTS_CRASH_DUMP > def_bool y > depends on CRASH_DUMP > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 0f3cd7c3a436..eb247b5ee569 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -880,6 +880,9 @@ config ARCH_SUPPORTS_KEXEC_PURGATORY > config ARCH_SUPPORTS_CRASH_DUMP > def_bool y > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION > def_bool CRASH_RESERVE > > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index a822f952f64a..05a1fb408471 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -275,6 +275,9 @@ config ARCH_SUPPORTS_CRASH_DUMP > This option also enables s390 zfcpdump. > See also <file:Documentation/arch/s390/zfcpdump.rst> > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > menu "Processor type and features" > > config HAVE_MARCH_Z10_FEATURES > diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig > index 1aa3c4a0c5b2..3a6338962636 100644 > --- a/arch/sh/Kconfig > +++ b/arch/sh/Kconfig > @@ -549,6 +549,9 @@ config ARCH_SUPPORTS_KEXEC > config ARCH_SUPPORTS_CRASH_DUMP > def_bool BROKEN_ON_SMP > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_SUPPORTS_KEXEC_JUMP > def_bool y > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 007bab9f2a0e..aa4666bb9e9c 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -2087,6 +2087,9 @@ config ARCH_SUPPORTS_KEXEC_JUMP > config ARCH_SUPPORTS_CRASH_DUMP > def_bool X86_64 || (X86_32 && HIGHMEM) > > +config ARCH_DEFAULT_CRASH_DUMP > + def_bool y > + > config ARCH_SUPPORTS_CRASH_HOTPLUG > def_bool y > > diff --git a/kernel/Kconfig.kexec b/kernel/Kconfig.kexec > index 6c34e63c88ff..4d111f871951 100644 > --- a/kernel/Kconfig.kexec > +++ b/kernel/Kconfig.kexec > @@ -97,7 +97,7 @@ config KEXEC_JUMP > > config CRASH_DUMP > bool "kernel crash dumps" > - default y > + default ARCH_DEFAULT_CRASH_DUMP > depends on ARCH_SUPPORTS_CRASH_DUMP > depends on KEXEC_CORE > select VMCORE_INFO It should be disabled on m68k and sh by default as well. Adrian
On 2024-08-23 03:16, John Paul Adrian Glaubitz wrote:
> It should be disabled on m68k and sh by default as well.
Sure, I can change that. What's the reasoning, so I can explain in my commit message?
-Dave
On 2024-08-23 07:58, Dave Vasilevsky wrote: > On 2024-08-23 03:16, John Paul Adrian Glaubitz wrote: >> It should be disabled on m68k and sh by default as well. > > Sure, I can change that. What's the reasoning, so I can explain in my commit message? Oh I don't think m68k even has ARCH_SUPPORTS_CRASH_DUMP, so it will always be off. My question still stands for sh though. -Dave
diff --git a/kernel/Kconfig.kexec b/kernel/Kconfig.kexec index 8faf27043432..6c34e63c88ff 100644 --- a/kernel/Kconfig.kexec +++ b/kernel/Kconfig.kexec @@ -9,8 +9,6 @@ config VMCORE_INFO bool config KEXEC_CORE - select VMCORE_INFO - select CRASH_RESERVE bool config KEXEC_ELF @@ -99,8 +97,11 @@ config KEXEC_JUMP config CRASH_DUMP bool "kernel crash dumps" + default y depends on ARCH_SUPPORTS_CRASH_DUMP - select KEXEC_CORE + 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
By splitting CRASH_RESERVE and VMCORE_INFO out from CRASH_CORE, cleaning up the dependency of FA_DMUMP on CRASH_DUMP, and moving crash codes from kexec_core.c to crash_core.c, now we can rearrange CRASH_DUMP to depend on KEXEC_CORE, and make CRASH_DUMP select CRASH_RESERVE and VMCORE_INFO. KEXEC_CORE won't select CRASH_RESERVE and VMCORE_INFO any more because KEXEC_CORE enables codes which allocate control pages, copy kexec/kdump segments, and prepare for switching. These codes are shared by both kexec reboot and crash dumping. Doing this makes codes and the corresponding config items more logical (the right item depends on or is selected by the left item). PROC_KCORE -----------> VMCORE_INFO |----------> VMCORE_INFO FA_DUMP----| |----------> CRASH_RESERVE ---->VMCORE_INFO / |---->CRASH_RESERVE KEXEC --| /| |--> KEXEC_CORE--> CRASH_DUMP-->/-|---->PROC_VMCORE KEXEC_FILE --| \ | \---->CRASH_HOTPLUG KEXEC --| |--> KEXEC_CORE--> kexec reboot KEXEC_FILE --| Signed-off-by: Baoquan He <bhe@redhat.com> --- kernel/Kconfig.kexec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)