• Aneesh Kumar K.V's avatar
    powerpc: Reduce PTE table memory wastage · 5c1f6ee9
    Aneesh Kumar K.V authored
    We allocate one page for the last level of linux page table. With THP and
    large page size of 16MB, that would mean we are wasting large part
    of that page. To map 16MB area, we only need a PTE space of 2K with 64K
    page size. This patch reduce the space wastage by sharing the page
    allocated for the last level of linux page table with multiple pmd
    entries. We call these smaller chunks PTE page fragments and allocated
    page, PTE page.
    
    In order to support systems which doesn't have 64K HPTE support, we also
    add another 2K to PTE page fragment. The second half of the PTE fragments
    is used for storing slot and secondary bit information of an HPTE. With this
    we now have a 4K PTE fragment.
    
    We use a simple approach to share the PTE page. On allocation, we bump the
    PTE page refcount to 16 and share the PTE page with the next 16 pte alloc
    request. This should help in the node locality of the PTE page fragment,
    assuming that the immediate pte alloc request will mostly come from the
    same NUMA node. We don't try to reuse the freed PTE page fragment. Hence
    we could be waisting some space.
    Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Acked-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    5c1f6ee9
pgtable_64.c 11.1 KB