• Yinghai Lu's avatar
    sparsemem: on no vmemmap path put mem_map on node high too · e48e67e0
    Yinghai Lu authored
    We need to put mem_map high when virtual memmap is not used.
    
    before this patch
    free mem pfn range on first node:
    [    0.000000]  19 - 1f
    [    0.000000]  28 40 - 80 95
    [    0.000000]  702 740 - 1000 1000
    [    0.000000]  347c - 347e
    [    0.000000]  34e7 3500 - 3b80 3b8b
    [    0.000000]  73b8b 73bc0 - 73c00 73c00
    [    0.000000]  73ddd - 73e00
    [    0.000000]  73fdd - 74000
    [    0.000000]  741dd - 74200
    [    0.000000]  743dd - 74400
    [    0.000000]  745dd - 74600
    [    0.000000]  747dd - 74800
    [    0.000000]  749dd - 74a00
    [    0.000000]  74bdd - 74c00
    [    0.000000]  74ddd - 74e00
    [    0.000000]  74fdd - 75000
    [    0.000000]  751dd - 75200
    [    0.000000]  753dd - 75400
    [    0.000000]  755dd - 75600
    [    0.000000]  757dd - 75800
    [    0.000000]  759dd - 75a00
    [    0.000000]  79bdd 79c00 - 7d540 7d550
    [    0.000000]  7f745 - 7f750
    [    0.000000]  10000b 100040 - 2080000 2080000
    so only 79c00 - 7d540 are major free block under 4g...
    
    after this patch, we will get
    [    0.000000]  19 - 1f
    [    0.000000]  28 40 - 80 95
    [    0.000000]  702 740 - 1000 1000
    [    0.000000]  347c - 347e
    [    0.000000]  34e7 3500 - 3600 3600
    [    0.000000]  37dd - 3800
    [    0.000000]  39dd - 3a00
    [    0.000000]  3bdd - 3c00
    [    0.000000]  3ddd - 3e00
    [    0.000000]  3fdd - 4000
    [    0.000000]  41dd - 4200
    [    0.000000]  43dd - 4400
    [    0.000000]  45dd - 4600
    [    0.000000]  47dd - 4800
    [    0.000000]  49dd - 4a00
    [    0.000000]  4bdd - 4c00
    [    0.000000]  4ddd - 4e00
    [    0.000000]  4fdd - 5000
    [    0.000000]  51dd - 5200
    [    0.000000]  53dd - 5400
    [    0.000000]  95dd 9600 - 7d540 7d550
    [    0.000000]  7f745 - 7f750
    [    0.000000]  17000b 170040 - 2080000 2080000
    we will have 9600 - 7d540 for major free block...
    
    sparse-vmemmap path already used __alloc_bootmem_node_high()
    Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
    Cc: Jiri Slaby <jirislaby@gmail.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Christoph Lameter <cl@linux-foundation.org>
    Cc: Greg Thelen <gthelen@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e48e67e0
sparse.c 20.5 KB