Re: [RFC][PATCH 04/11] asm-generic/tlb: Provide generic VIPT cache flush

From: Will Deacon
Date: Fri Sep 14 2018 - 12:56:33 EST


On Thu, Sep 13, 2018 at 11:21:14AM +0200, Peter Zijlstra wrote:
> The one obvious thing SH and ARM want is a sensible default for
> tlb_start_vma(). (also: https://lkml.org/lkml/2004/1/15/6 )
>
> Avoid all VIPT architectures providing their own tlb_start_vma()
> implementation and rely on architectures to provide a no-op
> flush_cache_range() when it is not relevant.
>
> The below makes tlb_start_vma() default to flush_cache_range(), which
> should be right and sufficient. The only exceptions that I found where
> (oddly):
>
> - m68k-mmu
> - sparc64
> - unicore
>
> Those architectures appear to have flush_cache_range(), but their
> current tlb_start_vma() does not call it.
>
> Cc: Will Deacon <will.deacon@xxxxxxx>
> Cc: "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: Nick Piggin <npiggin@xxxxxxxxx>
> Cc: David Miller <davem@xxxxxxxxxxxxx>
> Cc: Guan Xuetao <gxt@xxxxxxxxxx>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> ---
> arch/arc/include/asm/tlb.h | 9 ---------
> arch/mips/include/asm/tlb.h | 9 ---------
> arch/nds32/include/asm/tlb.h | 6 ------
> arch/nios2/include/asm/tlb.h | 10 ----------
> arch/parisc/include/asm/tlb.h | 5 -----
> arch/sparc/include/asm/tlb_32.h | 5 -----
> arch/xtensa/include/asm/tlb.h | 9 ---------
> include/asm-generic/tlb.h | 19 +++++++++++--------
> 8 files changed, 11 insertions(+), 61 deletions(-)

LGTM and makes no difference to arm/arm64:

Acked-by: Will Deacon <will.deacon@xxxxxxx>

Will