On Mon, 2018-08-27 at 13:03 +1000, Nicholas Piggin wrote: > Local radix TLB flush operations that operate on congruence classes > have explicit ERAT flushes for POWER9. The process scoped LPID flush > did not have a flush, so add it.
Paul, is that an actual bug ? I think the ERAT is flushed on LPID changes... > Signed-off-by: Nicholas Piggin <npig...@gmail.com> > --- > arch/powerpc/mm/tlb-radix.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c > index fef3e1eb3a19..4e798f33c530 100644 > --- a/arch/powerpc/mm/tlb-radix.c > +++ b/arch/powerpc/mm/tlb-radix.c > @@ -366,6 +366,7 @@ static inline void _tlbiel_lpid_guest(unsigned long lpid, > unsigned long ric) > __tlbiel_lpid_guest(lpid, set, RIC_FLUSH_TLB); > > asm volatile("ptesync": : :"memory"); > + asm volatile(PPC_INVALIDATE_ERAT : : :"memory"); > } > >