Re: [PATCH v13 6/8] arm64: kdump: reimplement crashkernel=X

From: Baoquan He
Date: Wed Nov 11 2020 - 08:57:05 EST


On 11/11/20 at 09:27pm, chenzhou wrote:
> Hi Baoquan,
...
> >> #ifdef CONFIG_CRASH_DUMP
> >> static int __init early_init_dt_scan_elfcorehdr(unsigned long node,
> >> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
> >> index 1c0f3e02f731..c55cee290bbb 100644
> >> --- a/arch/arm64/mm/mmu.c
> >> +++ b/arch/arm64/mm/mmu.c
> >> @@ -488,6 +488,10 @@ static void __init map_mem(pgd_t *pgdp)
> >> */
> >> memblock_mark_nomap(kernel_start, kernel_end - kernel_start);
> >> #ifdef CONFIG_KEXEC_CORE
> >> + if (crashk_low_res.end)
> >> + memblock_mark_nomap(crashk_low_res.start,
> >> + resource_size(&crashk_low_res));
> >> +
> >> if (crashk_res.end)
> >> memblock_mark_nomap(crashk_res.start,
> >> resource_size(&crashk_res));
> >> diff --git a/kernel/crash_core.c b/kernel/crash_core.c
> >> index d39892bdb9ae..cdef7d8c91a6 100644
> >> --- a/kernel/crash_core.c
> >> +++ b/kernel/crash_core.c
> >> @@ -321,7 +321,7 @@ int __init parse_crashkernel_low(char *cmdline,
> >>
> >> int __init reserve_crashkernel_low(void)
> >> {
> >> -#ifdef CONFIG_X86_64
> >> +#if defined(CONFIG_X86_64) || defined(CONFIG_ARM64)
> > Not very sure if a CONFIG_64BIT checking is better.
> If doing like this, there may be some compiling errors for other 64-bit kernel, such as mips.
> >
> >> unsigned long long base, low_base = 0, low_size = 0;
> >> unsigned long low_mem_limit;
> >> int ret;
> >> @@ -362,12 +362,14 @@ int __init reserve_crashkernel_low(void)
> >>
> >> crashk_low_res.start = low_base;
> >> crashk_low_res.end = low_base + low_size - 1;
> >> +#ifdef CONFIG_X86_64
> >> insert_resource(&iomem_resource, &crashk_low_res);
> >> +#endif
> >> #endif
> >> return 0;
> >> }
> >>
> >> -#ifdef CONFIG_X86
> >> +#if defined(CONFIG_X86) || defined(CONFIG_ARM64)
> > Should we make this weak default so that we can remove the ARCH config?
> The same as above, some arch may not support kdump, in that case, compiling errors occur.

OK, not sure if other people have better idea, oterwise, we can leave with it.
Thanks for telling.