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

Reply via email to