[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