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

Song Bao Hua (Barry Song) song.bao.hua at hisilicon.com
Thu Dec 3 20:50:40 EST 2020



> -----Original Message-----
> From: liwei (CM)
> Sent: Friday, December 4, 2020 2:45 PM
> To: catalin.marinas at arm.com; rppt at linux.ibm.com; will at kernel.org; liwei (CM)
> <liwei213 at huawei.com>
> Cc: fengbaopeng <fengbaopeng2 at hisilicon.com>; nsaenzjulienne at suse.de;
> steve.capper at arm.com; Song Bao Hua (Barry Song) <song.bao.hua at hisilicon.com>;
> linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org; butao
> <butao at hisilicon.com>
> 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 at huawei.com>
> Signed-off-by: Baopeng Feng <fengbaopeng2 at hisilicon.com>
> Signed-off-by: Xia Qing <saberlily.xia at hisilicon.com>
> ---

Reviewed-by: Barry Song <song.bao.hua at hisilicon.com>

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




More information about the linux-arm-kernel mailing list