• Y
    x86: Make early_node_mem get mem > 4 GB if possible · cef625ee
    Yinghai Lu 提交于
    So we could put pgdata for the node high, and later sparse
    vmmap will get the section nr that need.
    
    With this patch will make <4 GB ram not use a sparse vmmap.
    
    before this patch, will get, before swiotlb try get bootmem
    [    0.000000] nid=1 start=0 end=2080000 aligned=1
    [    0.000000]   free [10 - 96]
    [    0.000000]   free [b12 - 1000]
    [    0.000000]   free [359f - 38a3]
    [    0.000000]   free [38b5 - 3a00]
    [    0.000000]   free [41e01 - 42000]
    [    0.000000]   free [73dde - 73e00]
    [    0.000000]   free [73fdd - 74000]
    [    0.000000]   free [741dd - 74200]
    [    0.000000]   free [743dd - 74400]
    [    0.000000]   free [745dd - 74600]
    [    0.000000]   free [747dd - 74800]
    [    0.000000]   free [749dd - 74a00]
    [    0.000000]   free [74bdd - 74c00]
    [    0.000000]   free [74ddd - 74e00]
    [    0.000000]   free [74fdd - 75000]
    [    0.000000]   free [751dd - 75200]
    [    0.000000]   free [753dd - 75400]
    [    0.000000]   free [755dd - 75600]
    [    0.000000]   free [757dd - 75800]
    [    0.000000]   free [759dd - 75a00]
    [    0.000000]   free [75bdd - 7bf5f]
    [    0.000000]   free [7f730 - 7f750]
    [    0.000000]   free [100000 - 2080000]
    [    0.000000]   total free 1f87170
    [   93.301474] Placing 64MB software IO TLB between ffff880075bdd000 - ffff880079bdd000
    [   93.311814] software IO TLB at phys 0x75bdd000 - 0x79bdd000
    
    with this patch will get: before swiotlb try get bootmem
    [    0.000000] nid=1 start=0 end=2080000 aligned=1
    [    0.000000]   free [a - 96]
    [    0.000000]   free [702 - 1000]
    [    0.000000]   free [359f - 3600]
    [    0.000000]   free [37de - 3800]
    [    0.000000]   free [39dd - 3a00]
    [    0.000000]   free [3bdd - 3c00]
    [    0.000000]   free [3ddd - 3e00]
    [    0.000000]   free [3fdd - 4000]
    [    0.000000]   free [41dd - 4200]
    [    0.000000]   free [43dd - 4400]
    [    0.000000]   free [45dd - 4600]
    [    0.000000]   free [47dd - 4800]
    [    0.000000]   free [49dd - 4a00]
    [    0.000000]   free [4bdd - 4c00]
    [    0.000000]   free [4ddd - 4e00]
    [    0.000000]   free [4fdd - 5000]
    [    0.000000]   free [51dd - 5200]
    [    0.000000]   free [53dd - 5400]
    [    0.000000]   free [55dd - 7bf5f]
    [    0.000000]   free [7f730 - 7f750]
    [    0.000000]   free [100428 - 100600]
    [    0.000000]   free [13ea01 - 13ec00]
    [    0.000000]   free [170800 - 2080000]
    [    0.000000]   total free 1f87170
    
    [   92.689485] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
    [   92.699799] Placing 64MB software IO TLB between ffff8800055dd000 - ffff8800095dd000
    [   92.710916] software IO TLB at phys 0x55dd000 - 0x95dd000
    
    so will get enough space below 4G, aka pfn 0x100000
    Signed-off-by: NYinghai Lu <yinghai@kernel.org>
    LKML-Reference: <1265793639-15071-15-git-send-email-yinghai@kernel.org>
    Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
    cef625ee
numa_64.c 22.9 KB