Skip to content

arm64: TLB flush issues

Mark Salter linux-arm-kernel lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2arm64: fix unnecessary tlb flushesarch/arm64/mm/tlb.S+2 -20 replies
2/2arm64: fix soft lockup due to large tlb flush rangearch/arm64/include/asm/tlbflush.h+25 -30 replies

Reviews trailers per patch

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

Read the v1 thread

Cover letter [PATCH 0/2] arm64: TLB flush issues

As explained in more detail in the second patch, I have observed a soft lockup under some loads. These lockups were in flush_tlb_kernel_range() which was looping through a very large address range. While looking into this, I also noticed the flush routines in tlb.S were not properly handling pages larger than 4k. This is corrected in the first patch. The second patch limits the loop size for the flush_tlb_[kernel_]range functions. It uses an arbitrary constant to limit the loop, but it would be better if it were based on actual tlb size or some other heuristic.

Mark Salter (2):
arm64: fix unnecessary tlb flushes
arm64: fix soft lockup due to large tlb flush range

 arch/arm64/include/asm/tlbflush.h | 28 +++++++++++++++++++++++++---
 arch/arm64/mm/tlb.S               |  4 ++--
 2 files changed, 27 insertions(+), 5 deletions(-)
Signature · 1 line
1.9.0