Skip to content

RFC Further radix TLB flush optimisations

Nicholas Piggin linuxppc-dev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest8 patches 5 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8powerpc/64s/radix: Fix theoretical process table entry cache invalidationarch/powerpc/include/asm/mmu_context.h arch/powerpc/mm/mmu_context_book3s64.c+22 -50 replies
2/8powerpc/64s/radix: tlbie improve preempt handlingarch/powerpc/mm/tlb-radix.c+22 -250 replies
3/8powerpc/64s/radix: optimize TLB range flush barriersarch/powerpc/mm/tlb-radix.c+32 -90 replies
4/8powerpc/64s/radix: Implement _tlbie(l)_va_range flush functionsarch/powerpc/mm/tlb-radix.c+40 -300 replies
5/8powerpc/64s/radix: Introduce local single page ceiling for TLB range flusharch/powerpc/mm/tlb-radix.c+25 -240 replies
6/8powerpc/64s/radix: Optimize flush_tlb_rangearch/powerpc/include/asm/book3s/64/tlbflush-radix.h arch/powerpc/mm/tlb-radix.c+42 -120 replies
7/8powerpc/64s/radix: Improve TLB flushing for unmaps that free a page tablearch/powerpc/mm/tlb-radix.c+40 -110 replies
8/8powerpc/64s/radix: Only flush local TLB for spurious fault flushesarch/powerpc/include/asm/book3s/64/tlbflush-radix.h arch/powerpc/include/asm/book3s/64/tlbflush.h arch/powerpc/mm/pgtable-book3s64.c +2 more+48 -25 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH 0/8] Further radix TLB flush optimisations

Here is a bit more TLB flush work that mostly attempt to improve range flushes by reducing barriers, and reducing the cases we resort to flushing the entire PID.

I haven't done much benchmarking to get good numbers yet for the exact heuristics settings, just interested in comments for the overall idea.

Thanks,
Nick

Nicholas Piggin (8):
powerpc/64s/radix: Fix theoretical process table entry cache
invalidation
powerpc/64s/radix: tlbie improve preempt handling powerpc/64s/radix: optimize TLB range flush barriers powerpc/64s/radix: Implement _tlbie(l)_va_range flush functions powerpc/64s/radix: Introduce local single page ceiling for TLB range
flush
powerpc/64s/radix: Optimize flush_tlb_range powerpc/64s/radix: Improve TLB flushing for unmaps that free a page
table
powerpc/64s/radix: Only flush local TLB for spurious fault flushes

 .../powerpc/include/asm/book3s/64/tlbflush-radix.h |   7 +-
 arch/powerpc/include/asm/book3s/64/tlbflush.h      |  11 +
 arch/powerpc/include/asm/mmu_context.h             |   4 +
 arch/powerpc/mm/mmu_context_book3s64.c             |  23 +-
 arch/powerpc/mm/pgtable-book3s64.c                 |   5 +-
 arch/powerpc/mm/pgtable.c                          |   2 +-
 arch/powerpc/mm/tlb-radix.c                        | 263 +++++++++++++++------
 7 files changed, 234 insertions(+), 81 deletions(-)
Signature · 1 line
2.13.3