arm64: mm: enable per pmd page table lock
authorYu Zhao <yuzhao@google.com>
Tue, 12 Mar 2019 00:57:49 +0000 (18:57 -0600)
committerWill Deacon <will.deacon@arm.com>
Tue, 9 Apr 2019 10:21:50 +0000 (11:21 +0100)
commit54c8d9119ec85de48fd0707946a5e57df9ad7acf
treebb63c0e6365016782e0d0646a6ad9e004ed88fc5
parent14b94d07572619af896c6d2d83b1196c4041fe19
arm64: mm: enable per pmd page table lock

Switch from per mm_struct to per pmd page table lock by enabling
ARCH_ENABLE_SPLIT_PMD_PTLOCK. This provides better granularity for
large system.

I'm not sure if there is contention on mm->page_table_lock. Given
the option comes at no cost (apart from initializing more spin
locks), why not enable it now.

We only do so when pmd is not folded, so we don't mistakenly call
pgtable_pmd_page_ctor() on pud or p4d in pgd_pgtable_alloc().

Signed-off-by: Yu Zhao <yuzhao@google.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/Kconfig
arch/arm64/include/asm/pgalloc.h
arch/arm64/include/asm/tlb.h