• Christoph Lameter's avatar
    Quicklists for page table pages · 6225e937
    Christoph Lameter authored
    On x86_64 this cuts allocation overhead for page table pages down to a
    fraction (kernel compile / editing load.  TSC based measurement of times spend
    in each function):
    
    no quicklist
    
    pte_alloc               1569048 4.3s(401ns/2.7us/179.7us)
    pmd_alloc                780988 2.1s(337ns/2.7us/86.1us)
    pud_alloc                780072 2.2s(424ns/2.8us/300.6us)
    pgd_alloc                260022 1s(920ns/4us/263.1us)
    
    quicklist:
    
    pte_alloc                452436 573.4ms(8ns/1.3us/121.1us)
    pmd_alloc                196204 174.5ms(7ns/889ns/46.1us)
    pud_alloc                195688 172.4ms(7ns/881ns/151.3us)
    pgd_alloc                 65228 9.8ms(8ns/150ns/6.1us)
    
    pgd allocations are the most complex and there we see the most dramatic
    improvement (may be we can cut down the amount of pgds cached somewhat?).  But
    even the pte allocations still see a doubling of performance.
    
    1. Proven code from the IA64 arch.
    
    	The method used here has been fine tuned for years and
    	is NUMA aware. It is base...
    6225e937
quicklist.c 2.04 KB