RE: [PATCH] arm64: mm: decrease the section size to reduce the memory reserved for the page map

From: Song Bao Hua (Barry Song)
Date: Thu Dec 03 2020 - 20:51:42 EST




> -----Original Message-----
> From: liwei (CM)
> Sent: Friday, December 4, 2020 2:45 PM
> To: catalin.marinas@xxxxxxx; rppt@xxxxxxxxxxxxx; will@xxxxxxxxxx; liwei (CM)
> <liwei213@xxxxxxxxxx>
> Cc: fengbaopeng <fengbaopeng2@xxxxxxxxxxxxx>; nsaenzjulienne@xxxxxxx;
> steve.capper@xxxxxxx; Song Bao Hua (Barry Song) <song.bao.hua@xxxxxxxxxxxxx>;
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; butao
> <butao@xxxxxxxxxxxxx>
> Subject: [PATCH] arm64: mm: decrease the section size to reduce the memory
> reserved for the page map
>
> For the memory hole, sparse memory model that define SPARSEMEM_VMEMMAP
> do not free the reserved memory for the page map, decrease the section
> size can reduce the waste of reserved memory.
>
> Signed-off-by: Wei Li <liwei213@xxxxxxxxxx>
> Signed-off-by: Baopeng Feng <fengbaopeng2@xxxxxxxxxxxxx>
> Signed-off-by: Xia Qing <saberlily.xia@xxxxxxxxxxxxx>
> ---

Reviewed-by: Barry Song <song.bao.hua@xxxxxxxxxxxxx>

When page size is 4K, for each 1GB memory, we need 16MB vmemmap;
For each 128MB memory, we need 2MB vmemmap.

So while we have memory hole like 928MB(1GB-64MB),if SECTION_SIZE_BITS
is 30, we waste 15MB; if SECTION_SIZE_BITS is 27, we waste 1MB only.

> arch/arm64/include/asm/sparsemem.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/include/asm/sparsemem.h
> b/arch/arm64/include/asm/sparsemem.h
> index 1f43fcc79738..8963bd3def28 100644
> --- a/arch/arm64/include/asm/sparsemem.h
> +++ b/arch/arm64/include/asm/sparsemem.h
> @@ -7,7 +7,7 @@
>
> #ifdef CONFIG_SPARSEMEM
> #define MAX_PHYSMEM_BITS CONFIG_ARM64_PA_BITS
> -#define SECTION_SIZE_BITS 30
> +#define SECTION_SIZE_BITS 27
> #endif
>
> #endif
> --
> 2.15.0

Thanks
Barry