path: root/mm/sparse-vmemmap.c
diff options
authorBaoquan He <>2018-08-17 15:48:38 -0700
committerLinus Torvalds <>2018-08-17 16:20:31 -0700
commitf2fc10e0b3fe7d1aecbd2cab6bf0007b6771e16d (patch)
tree54ba9725c59a875521f0982e7bf3579547f8a007 /mm/sparse-vmemmap.c
parent7e010df53c80197b23119e7d7b95892aa13629df (diff)
mm/sparse.c: add a static variable nr_present_sections
Patch series "mm/sparse: Optimize memmap allocation during sparse_init()", v6. 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. This patch (of 5): nr_present_sections is used to record how many memory sections are marked as present during system boot up, and will be used in the later patch. Link: Signed-off-by: Baoquan He <> Acked-by: Dave Hansen <> Reviewed-by: Andrew Morton <> Reviewed-by: Pavel Tatashin <> Reviewed-by: Oscar Salvador <> Cc: Pasha Tatashin <> Cc: Kirill A. Shutemov <> Cc: Pankaj Gupta <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'mm/sparse-vmemmap.c')
0 files changed, 0 insertions, 0 deletions