• Nicholas Piggin's avatar
    powerpc/64s/radix: Enable HAVE_ARCH_HUGE_VMAP · d909f910
    Nicholas Piggin authored
    This sets the HAVE_ARCH_HUGE_VMAP option, and defines the required
    page table functions.
    
    This enables huge (2MB and 1GB) ioremap mappings. I don't have a
    benchmark for this change, but huge vmap will be used by a later core
    kernel change to enable huge vmalloc memory mappings. This improves
    cached `git diff` performance by about 5% on a 2-node POWER9 with 32MB
    size dentry cache hash.
    
      Profiling git diff dTLB misses with a vanilla kernel:
    
      81.75%  git      [kernel.vmlinux]    [k] __d_lookup_rcu
       7.21%  git      [kernel.vmlinux]    [k] strncpy_from_user
       1.77%  git      [kernel.vmlinux]    [k] find_get_entry
       1.59%  git      [kernel.vmlinux]    [k] kmem_cache_free
    
                40,168      dTLB-miss
           0.100342754 seconds time elapsed
    
      With powerpc huge vmalloc:
    
                 2,987      dTLB-miss
           0.095933138 seconds time elapsed
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    d909f910
radix_pgtable.c 29.4 KB