This patch series add split pmd pagetable lock for book3s64. nohash64 also 
should
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 
this early
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 
fragments
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
    level
  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(-)

-- 
2.14.3

Reply via email to