diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2019-06-10 13:08:18 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2019-06-19 20:05:09 +1000 |
commit | d909f9109c301f4e9e41678025c45d719ab8f7d7 (patch) | |
tree | 23360f2a5319e4738af0843bce9148c49b74ca19 /arch/powerpc/kernel | |
parent | d38153f9ccc9b6b6a27a91559999292c27b72b8c (diff) | |
download | linux-d909f9109c301f4e9e41678025c45d719ab8f7d7.tar.gz linux-d909f9109c301f4e9e41678025c45d719ab8f7d7.tar.bz2 linux-d909f9109c301f4e9e41678025c45d719ab8f7d7.zip |
powerpc/64s/radix: Enable HAVE_ARCH_HUGE_VMAP
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: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/kernel')
0 files changed, 0 insertions, 0 deletions