Do not mark regions that are marked with nomap to be present, otherwise these memblock cause unnecessarily allocation of metadata.
Cc: Andrew Morton <a...@linux-foundation.org> Cc: Pavel Tatashin <pasha.tatas...@oracle.com> Cc: Oscar Salvador <osalva...@suse.de> Cc: Michal Hocko <mho...@suse.com> Cc: Mike Rapoport <r...@linux.ibm.com> Cc: Baoquan He <b...@redhat.com> Cc: Qian Cai <c...@lca.pw> Cc: Wei Yang <richard.weiy...@gmail.com> Cc: Logan Gunthorpe <log...@deltatee.com> Cc: linux...@kvack.org Cc: linux-kernel@vger.kernel.org Signed-off-by: KarimAllah Ahmed <karah...@amazon.de> --- mm/sparse.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/sparse.c b/mm/sparse.c index fd13166..33810b6 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -256,6 +256,10 @@ void __init memblocks_present(void) struct memblock_region *reg; for_each_memblock(memory, reg) { + + if (memblock_is_nomap(reg)) + continue; + memory_present(memblock_get_region_node(reg), memblock_region_memory_base_pfn(reg), memblock_region_memory_end_pfn(reg)); -- 2.7.4