[RFC PATCH 8/8] powerpc/64s/radix: Only flush local TLB for spurious fault flushes
Benjamin Herrenschmidt
benh at kernel.crashing.org
Fri Sep 8 15:55:11 AEST 2017
On Fri, 2017-09-08 at 14:44 +1000, Nicholas Piggin wrote:
> On Fri, 08 Sep 2017 08:05:38 +1000
> Benjamin Herrenschmidt <benh at kernel.crashing.org> wrote:
>
> > On Fri, 2017-09-08 at 00:51 +1000, Nicholas Piggin wrote:
> > > When permissiveness is relaxed, or found to have been relaxed by
> > > another thread, we flush that address out of the TLB to avoid a
> > > future fault or micro-fault due to a stale TLB entry.
> > >
> > > Currently for processes with TLBs on other CPUs, this flush is always
> > > done with a global tlbie. Although that could reduce faults on remote
> > > CPUs, a broadcast operation seems to be wasteful for something that
> > > can be handled in-core by the remote CPU if it comes to it.
> > >
> > > This is not benchmarked yet. It does seem cut some tlbie operations
> > > from the bus.
> >
> > What happens with the nest MMU here ?
>
> Good question, I'm not sure. I can't tell from the UM or not if the
> agent and NMMU must discard cached translations if there is a
> translation cached but it has a permission fault. It's not clear
> from that I've read that if it's relying on the host to send back a
> tlbie.
I think it's supposed to re-do a tablewalk.
> I'll keep digging.
>
> Thanks,
> Nick
More information about the Linuxppc-dev
mailing list