OpenCloudOS-Kernel/arch/powerpc/mm/book3s64
Aneesh Kumar K.V cec6515abb powerpc/book3s64/mm: update flush_tlb_range to flush page walk cache
flush_tlb_range is special in that we don't specify the page size used for
the translation.  Hence when flushing TLB we flush the translation cache
for all possible page sizes.  The kernel also uses the same interface when
moving page tables around.  Such a move requires us to flush the page walk
cache.

Instead of adding another interface to force page walk cache flush, update
flush_tlb_range to flush page walk cache if the range flushed is more than
the PMD range.  A page table move will always involve an invalidate range
more than PMD_SIZE.

Running microbenchmark with mprotect and parallel memory access didn't
show any observable performance impact.

Link: https://lkml.kernel.org/r/20210616045735.374532-3-aneesh.kumar@linux.ibm.com
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Hugh Dickins <hughd@google.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Kalesh Singh <kaleshsingh@google.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-07-08 11:48:23 -07:00
..
Makefile powerpc/book3s64/kuap/kuep: Add PPC_PKEY config on book3s64 2020-12-04 01:01:24 +11:00
hash_4k.c powerpc/book3s64/kuap: Use Key 3 for kernel mapping with hash translation 2020-12-04 01:01:25 +11:00
hash_64k.c powerpc/book3s64/kuap: Use Key 3 for kernel mapping with hash translation 2020-12-04 01:01:25 +11:00
hash_hugepage.c powerpc/book3s64/kuap: Use Key 3 for kernel mapping with hash translation 2020-12-04 01:01:25 +11:00
hash_hugetlbpage.c powerpc/mm: Move hpte_insert_repeating() prototype 2021-01-30 11:39:29 +11:00
hash_native.c powerpc/64s/pseries: Fix hash tlbiel_all_isa300 for guest kernels 2020-11-27 00:10:39 +11:00
hash_pgtable.c powerpc/mm/64s/hash: Add real-mode change_memory_range() for hash LPAR 2021-04-08 21:17:43 +10:00
hash_tlb.c mm: remove unneeded includes of <asm/pgalloc.h> 2020-08-07 11:33:26 -07:00
hash_utils.c powerpc/64s: fix hash page fault interrupt handler 2021-06-30 22:21:19 +10:00
internal.h powerpc/mm/64s: Fix no previous prototype warning 2021-02-11 23:28:51 +11:00
iommu_api.c powerpc/mm/book3s64/iommu: fix some RCU-list locks 2021-01-31 22:35:49 +11:00
mmu_context.c powerpc/mm/book3s64: Fix a typo in mmu_context.c 2021-03-29 13:22:12 +11:00
pgtable.c powerpc/mm/64s: Fix no previous prototype warning 2021-02-11 23:28:51 +11:00
pkeys.c powerpc/64s: Fold update_current_thread_[i]amr() into their only callers 2021-03-29 13:22:14 +11:00
radix_hugetlbpage.c powerpc/book3s64/mm: update flush_tlb_range to flush page walk cache 2021-07-08 11:48:23 -07:00
radix_pgtable.c mm: rename p4d_page_vaddr to p4d_pgtable and make it return pud_t * 2021-07-08 11:48:22 -07:00
radix_tlb.c powerpc/book3s64/mm: update flush_tlb_range to flush page walk cache 2021-07-08 11:48:23 -07:00
slb.c powerpc: convert interrupt handlers to use wrappers 2021-02-09 00:02:12 +11:00
subpage_prot.c mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00