[PATCH 0/2] arm64: TLB flush issues

Mark Salter msalter at redhat.com
Fri May 2 08:20:33 PDT 2014


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(-)

-- 
1.9.0




More information about the linux-arm-kernel mailing list