Re: [PATCH linux-next v3 05/14] crash: clean up kdump related config items

Baoquan He
2024-08-22T09:17:54Z

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"