Subject: Re: [PATCH] aarch64/mm: speedup memory initialisation

From: James Morse <[email-masked]>
Date: Wed, 11 Sep 2019 17:22:32 +0100

Hi Hubert,

(Subject-Nit: The prefix for this part of the kernel is 'arm64: mm:'. 
git log --oneline $file will usually give you enough examples you can 
spot the pattern.)

On 9/10/19 9:59 AM, Hubert Ralf wrote:
> On ARM64 memmap_init_zone is used during bootmem_init, which iterates over
> all pages in the memory starting at the lowest address until the highest
> address is reached. On arm64 this ends up in searching a memmory region
> containing for each single page between lowest and highest available
> physicall address.

> Having a sparse memory system there may be some big holes in the
> memory map. For each page in this holes a lookup is done, which is
> implemented as a binary search on the available memory blocks.
> 
> Adding a memmap_init for aarch64 to do the init only for the available
> memory areas reduces the time needed for initialising memory on startup.
> On a Renesas R-CAR M3 based system with a total hole of 20GB bootmem_init
> execution time is reduced from 378ms to 84ms.

Hmm, there is nothing arm64 specific about this SPARSEMEM behaviour.
Is there any reason this can't be done in core code, where it would 
benefit other architectures too?

(You'd need it to depend on !ARCH_DISCARD_MEMBLOCK as it looks like 
memory-hotplug uses this late).

Thanks,

James

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel