• Yinghai Lu's avatar
    x86: fix init_memory_mapping for [dc000000 - e0000000) - v2 · f96f57d9
    Yinghai Lu authored
    Impact: change over-mapping to precise mapping, fix /proc/meminfo output
    
    v2: fix less than 1G ram system handling
    
    when gart aperture is 0xdc000000 - 0xe0000000
    it return 0xc0000000 - 0xe0000000
    
    that is not right.
    
    this patch fix that will get exact mapping
    
    on 256g sytem with that aperture after patch
    LBSuse:~ # cat /proc/meminfo
    MemTotal:       264742432 kB
    MemFree:        263920628 kB
    Buffers:            1416 kB
    Cached:            24468 kB
    ...
    DirectMap4k:      5760 kB
    DirectMap2M:   3205120 kB
    DirectMap1G:  265289728 kB
    
    it is consistent to
    LBSuse:~ # cat /sys/kernel/debug/kernel_page_tables
    ..
    ---[ Low Kernel Mapping ]---
    0xffff880000000000-0xffff880000200000           2M     RW             GLB x  pte
    0xffff880000200000-0xffff880040000000        1022M     RW         PSE GLB x  pmd
    0xffff880040000000-0xffff8800c0000000           2G     RW         PSE GLB NX pud
    0xffff8800c0000000-0xffff8800d7e00000         382M     RW         PSE GLB NX pmd
    0xffff8800d7e00000-0xffff8800d7fa0000        1664K     RW             GLB NX pte
    0xffff8800d7fa0000-0xffff8800d8000000         384K                           pte
    0xffff8800d8000000-0xffff8800dc000000          64M                           pmd
    0xffff8800dc000000-0xffff8800e0000000          64M     RW         PSE GLB NX pmd
    0xffff8800e0000000-0xffff880100000000         512M                           pmd
    0xffff880100000000-0xffff880800000000          28G     RW         PSE GLB NX pud
    0xffff880800000000-0xffff880824600000         582M     RW         PSE GLB NX pmd
    0xffff880824600000-0xffff8808247f0000        1984K     RW             GLB NX pte
    0xffff8808247f0000-0xffff880824800000          64K     RW     PCD     GLB NX pte
    0xffff880824800000-0xffff880840000000         440M     RW         PSE GLB NX pmd
    0xffff880840000000-0xffff884000000000         223G     RW         PSE GLB NX pud
    0xffff884000000000-0xffff884028000000         640M     RW         PSE GLB NX pmd
    0xffff884028000000-0xffff884040000000         384M                           pmd
    0xffff884040000000-0xffff888000000000         255G                           pud
    0xffff888000000000-0xffffc20000000000       58880G                           pgd
    Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    f96f57d9
init_64.c 30.9 KB