Skip to content
  • Zhu Guihua's avatar
    mm/memory hotplug: print the last vmemmap region at the end of hot add memory · c435a390
    Zhu Guihua authored
    
    
    When hot add two nodes continuously, we found the vmemmap region info is
    a bit messed.  The last region of node 2 is printed when node 3 hot
    added, like the following:
    
      Initmem setup node 2 [mem 0x0000000000000000-0xffffffffffffffff]
       On node 2 totalpages: 0
       Built 2 zonelists in Node order, mobility grouping on.  Total pages: 16090539
       Policy zone: Normal
       init_memory_mapping: [mem 0x40000000000-0x407ffffffff]
        [mem 0x40000000000-0x407ffffffff] page 1G
        [ffffea1000000000-ffffea10001fffff] PMD -> [ffff8a077d800000-ffff8a077d9fffff] on node 2
        [ffffea1000200000-ffffea10003fffff] PMD -> [ffff8a077de00000-ffff8a077dffffff] on node 2
      ...
        [ffffea101f600000-ffffea101f9fffff] PMD -> [ffff8a074ac00000-ffff8a074affffff] on node 2
        [ffffea101fa00000-ffffea101fdfffff] PMD -> [ffff8a074a800000-ffff8a074abfffff] on node 2
      Initmem setup node 3 [mem 0x0000000000000000-0xffffffffffffffff]
       On node 3 totalpages: 0
       Built 3 zonelists in Node order, mobility grouping on.  Total pages: 16090539
       Policy zone: Normal
       init_memory_mapping: [mem 0x60000000000-0x607ffffffff]
        [mem 0x60000000000-0x607ffffffff] page 1G
        [ffffea101fe00000-ffffea101fffffff] PMD -> [ffff8a074a400000-ffff8a074a5fffff] on node 2 <=== node 2 ???
        [ffffea1800000000-ffffea18001fffff] PMD -> [ffff8a074a600000-ffff8a074a7fffff] on node 3
        [ffffea1800200000-ffffea18005fffff] PMD -> [ffff8a074a000000-ffff8a074a3fffff] on node 3
        [ffffea1800600000-ffffea18009fffff] PMD -> [ffff8a0749c00000-ffff8a0749ffffff] on node 3
      ...
    
    The cause is the last region was missed at the and of hot add memory,
    and p_start, p_end, node_start were not reset, so when hot add memory to
    a new node, it will consider they are not contiguous blocks and print
    the previous one.  So we print the last vmemmap region at the end of hot
    add memory to avoid the confusion.
    
    Signed-off-by: default avatarZhu Guihua <zhugh.fnst@cn.fujitsu.com>
    Reviewed-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    c435a390