This patch series add split pmd pagetable lock for book3s64. nohash64 also
be able to switch to this. I need to workout the code dependency. This series
also migh have broken the build on platforms otherthan book3s64. I am sending
to get feedback on whether we should continue with the approach.
We switch the pmd allocator to use something similar to what we already use for
level 4 pagetable allocation. We get an order 0 page and divide that to
and hand over fragments when we get request for a pmd pagetable. The pmd lock is
now stashed in the struct page backing the allocated page.
The series should help in reducing lock contention on mm->page_table_lock.
Aneesh Kumar K.V (6):
powerpc/mm: Rename pte fragment functions
powerpc/mm/4k: Switch 4k pagesize config to use pagetable fragment
powerpc/mm: Implement helpers for pagetable fragment support at PMD
powerpc/mm: Simplify the rcu callback for page table free
powerpc/mm: Use page fragments for allocation page table at PMD level
enable split pmd ptlock.
arch/powerpc/include/asm/book3s/32/pgalloc.h | 2 +-
arch/powerpc/include/asm/book3s/64/hash-4k.h | 10 +-
arch/powerpc/include/asm/book3s/64/hash-64k.h | 4 +
arch/powerpc/include/asm/book3s/64/mmu.h | 7 +-
arch/powerpc/include/asm/book3s/64/pgalloc.h | 43 ++------
arch/powerpc/include/asm/book3s/64/pgtable.h | 6 ++
arch/powerpc/include/asm/book3s/64/radix-4k.h | 8 ++
arch/powerpc/include/asm/book3s/64/radix-64k.h | 4 +
arch/powerpc/include/asm/pgalloc.h | 9 ++
arch/powerpc/mm/hash_utils_64.c | 2 +
arch/powerpc/mm/init-common.c | 2 -
arch/powerpc/mm/mmu_context_book3s64.c | 39 ++++---
arch/powerpc/mm/pgtable-radix.c | 2 +
arch/powerpc/mm/pgtable_64.c | 144 +++++++++++++++++++++----
arch/powerpc/platforms/Kconfig.cputype | 4 +
15 files changed, 209 insertions(+), 77 deletions(-)