答复: [PATCH] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP

From: liwei (CM)
Date: Wed Jul 08 2020 - 03:52:12 EST


Hi, baohua

Thank you for your attention.

In my understanding of the MEMORY_HOTPLUG this patch has no effect on it. The reason is that in sparse_add_one_section() the memory that memmap needs from Slab if kernel start completed,this memory has nothing to do with memblock alloc/ free memory in the process of kernel start.

You may have a look vmemmap_alloc_block () this function.

If I don't understand right welcome pointed out in a timely manner.

Thanks!


-----邮件原件-----
发件人: Song Bao Hua (Barry Song)
发送时间: 2020年7月8日 15:19
收件人: liwei (CM) <liwei213@xxxxxxxxxx>; catalin.marinas@xxxxxxx; will@xxxxxxxxxx
抄送: fengbaopeng <fengbaopeng2@xxxxxxxxxxxxx>; nsaenzjulienne@xxxxxxx; steve.capper@xxxxxxx; rppt@xxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; sujunfei <sujunfei2@xxxxxxxxxxxxx>
主题: RE: [PATCH] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP



> -----Original Message-----
> From: liwei (CM)
> Sent: Wednesday, July 8, 2020 1:56 PM
> To: catalin.marinas@xxxxxxx; will@xxxxxxxxxx
> Cc: liwei (CM) <liwei213@xxxxxxxxxx>; fengbaopeng
> <fengbaopeng2@xxxxxxxxxxxxx>; nsaenzjulienne@xxxxxxx;
> steve.capper@xxxxxxx; rppt@xxxxxxxxxxxxx; Song Bao Hua (Barry Song)
> <song.bao.hua@xxxxxxxxxxxxx>; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; sujunfei <sujunfei2@xxxxxxxxxxxxx>
> Subject: [PATCH] arm64: mm: free unused memmap for sparse memory model
> that define VMEMMAP
>
> For the memory hole, sparse memory model that define SPARSEMEM_VMEMMAP
> do not free the reserved memory for the page map, this patch do it.

Hello Wei,
Just curious if this patch breaks MEMORY_HOTPLUG?

>
> Signed-off-by: Wei Li <liwei213@xxxxxxxxxx>
> Signed-off-by: Chen Feng <puck.chen@xxxxxxxxxxxxx>
> Signed-off-by: Xia Qing <saberlily.xia@xxxxxxxxxxxxx>
> ---
> arch/arm64/mm/init.c | 81
> +++++++++++++++++++++++++++++++++++++++++++++-------
> 1 file changed, 71 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index
> 1e93cfc7c47a..d1b56b47d5ba 100644
> --- a/arch/arm64/mm/init.c
> +++ b/arch/arm64/mm/init.c
> @@ -441,7 +441,48 @@ void __init bootmem_init(void)
> memblock_dump_all();
> }
>

Thanks
Barry