• Nicholas Piggin's avatar
    powerpc/mm/slice: implement a slice mask cache · 5709f7cf
    Nicholas Piggin authored
    Calculating the slice mask can become a signifcant overhead for
    get_unmapped_area. This patch adds a struct slice_mask for
    each page size in the mm_context, and keeps these in synch with
    the slices psize arrays and slb_addr_limit.
    
    On Book3S/64 this adds 288 bytes to the mm_context_t for the
    slice mask caches.
    
    On POWER8, this increases vfork+exec+exit performance by 9.9%
    and reduces time to mmap+munmap a 64kB page by 28%.
    
    Reduces time to mmap+munmap by about 10% on 8xx.
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    5709f7cf
slice.c 21.8 KB