mm/sparse.c: pass the __highest_present_section_nr + 1 to alloc_func()
authorWei Yang <richard.weiyang@gmail.com>
Fri, 8 Jun 2018 00:06:43 +0000 (17:06 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 8 Jun 2018 00:34:35 +0000 (17:34 -0700)
In commit c4e1be9ec113 ("mm, sparsemem: break out of loops early")
__highest_present_section_nr is introduced to reduce the loop counts for
present section.  This is also helpful for usemap and memmap allocation.

This patch uses __highest_present_section_nr + 1 to optimize the loop.

Link: http://lkml.kernel.org/r/20180326081956.75275-1-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/sparse.c

index 3570ff2..f13f272 100644 (file)
@@ -522,7 +522,7 @@ static void __init alloc_usemap_and_memmap(void (*alloc_func)
                map_count = 1;
        }
        /* ok, last chunk */
-       alloc_func(data, pnum_begin, NR_MEM_SECTIONS,
+       alloc_func(data, pnum_begin, __highest_present_section_nr+1,
                                                map_count, nodeid_begin);
 }