[RFC][PATCH 0/2] reworking cause_ipi and adding global doorbell support
Nicholas Piggin
npiggin at gmail.com
Tue Mar 14 15:35:53 AEDT 2017
On Tue, 14 Mar 2017 14:57:20 +1100
Benjamin Herrenschmidt <benh at kernel.crashing.org> wrote:
> On Tue, 2017-03-14 at 12:53 +1000, Nicholas Piggin wrote:
> > > - Load all
> > > - For each byte if set
> > > - clear byte
> > > - then call handler
> >
> > Yes. I think that will be okay because we shouldn't get any load-hit-
> > store
> > issues. I'll do some benchmarking anyway.
>
> We might need a sync still between clearing the byte and calling the
> handler no ? Or at least a smp_wmb() to ensure that the clear is
> visible before any action of the handler.
Yes I have exactly that (smp_wmb).
At first I checked and cleared each byte then did a single smp_wmb, but
I changed my mind because most of the time the IPI will fire with only
one message set, so it does not seem like it's worth the extra branches
to avoid a lwsync in the rare case of 2 messages.
Thanks,
Nick
More information about the Linuxppc-dev
mailing list