Re: [PATCH v4 0/4] mm/sparse: Optimize memmap allocation during sparse_init()

From: Andrew Morton
Date: Thu Jun 07 2018 - 18:17:23 EST


On Mon, 21 May 2018 18:15:51 +0800 Baoquan He <bhe@xxxxxxxxxx> wrote:

> This is v4 post. V3 can be found here:
> https://lkml.org/lkml/2018/2/27/928
>
> V1 can be found here:
> https://www.spinics.net/lists/linux-mm/msg144486.html
>
> In sparse_init(), two temporary pointer arrays, usemap_map and map_map
> are allocated with the size of NR_MEM_SECTIONS. They are used to store
> each memory section's usemap and mem map if marked as present. In
> 5-level paging mode, this will cost 512M memory though they will be
> released at the end of sparse_init(). System with few memory, like
> kdump kernel which usually only has about 256M, will fail to boot
> because of allocation failure if CONFIG_X86_5LEVEL=y.
>
> In this patchset, optimize the memmap allocation code to only use
> usemap_map and map_map with the size of nr_present_sections. This
> makes kdump kernel boot up with normal crashkernel='' setting when
> CONFIG_X86_5LEVEL=y.

We're still a bit short on review input for this series. Hi, Dave!