Hi, Jinyang, On Wed, Sep 23, 2020 at 11:02 AM Jinyang He <hejinyang@xxxxxxxxxxx> wrote: > > On 09/23/2020 10:30 AM, Huacai Chen wrote: > > Kexec-tools use mem=X@Y to pass usable memories to crash kernel, but in > > commit a94e4f24ec836c8984f83959 ("MIPS: init: Drop boot_mem_map") all > > BIOS passed memories are removed by early_parse_mem(). I think this is > > reasonable for a normal kernel but not for a crash kernel, because a > > crash kernel should be able to see all old memories, even though it is > > not supposed to use them. > > > > Fixes: a94e4f24ec836c8984f83959 ("MIPS: init: Drop boot_mem_map") > > Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx> > > --- > > arch/mips/kernel/setup.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c > > index 4c04a86..e2804a2 100644 > > --- a/arch/mips/kernel/setup.c > > +++ b/arch/mips/kernel/setup.c > > @@ -392,8 +392,10 @@ static int __init early_parse_mem(char *p) > > */ > > if (usermem == 0) { > > usermem = 1; > > +#ifndef CONFIG_CRASH_DUMP > > memblock_remove(memblock_start_of_DRAM(), > > memblock_end_of_DRAM() - memblock_start_of_DRAM()); > > +#endif > > Hi, Huacai, > > For this patch, I knew something what had happened. "mem=" parsing > works wrong for Loongson64. You can referenced the follow patch: > https://patchwork.kernel.org/patch/11789555/ > > memblock_add() calls memblock_add_range(,,, MAX_NUMNODES,) > For Loongson64 enabling NUMA, we need memblock_add_node(). (Or > using memblock_set_node() after memblock_add()) This seems like another story. > > Besides, "mem=" may be useless for kdump. Youling had submitted a patch > about removing "mem=" serveral days ago. kexec-tools use "mem=" to pass usable memory for the crash kernel, Youling removes the base address of "mem=", but "mem=" is still here. > > For Loongson64 platform, you can try crashkernel=SIZE@38M after fixed > "mem=". > 38M means 40M - 2M, 2M is needed because old firmware compatibility. "crashkernel=" is for the normal kernel specified by BIOS, and "mem=" is for the crash kernel specified by kexec-tools. Huacai > > Thanks, > - Jinyang. > > > } > > start = 0; > > size = memparse(p, &p); >