On 2020/11/12 16:36, Baoquan He wrote: > On 11/12/20 at 10:25am, Mike Rapoport wrote: >> On Wed, Nov 11, 2020 at 09:54:48PM +0800, Baoquan He wrote: >>> 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. >> I think it would be better to have CONFIG_ARCH_WANT_RESERVE_CRASH_KERNEL >> in arch/Kconfig and select this by X86 and ARM64. >> >> Since reserve_crashkernel() implementations are quite similart on other >> architectures as well, we can have more users of this later. > Yes, this sounds like a nice way. I will think about this in next version. Thanks, Chen Zhou > > . >