On Wed, Aug 10, 2016 at 03:23:16PM -0700, Davidlohr Bueso wrote: > On Wed, 10 Aug 2016, Paul E. McKenney wrote: > > >On Wed, Aug 10, 2016 at 08:21:22PM +0200, Manfred Spraul wrote: > > >> 4) > >>spin_unlock_wait() and spin_unlock() pair > >>http://git.cmpxchg.org/cgit.cgi/linux-mmots.git/tree/ipc/sem.c#n291 > >>http://git.cmpxchg.org/cgit.cgi/linux-mmots.git/tree/ipc/sem.c#n409 > >>The data from the simple op must be observed by the following > >>complex op. Right now, there is still an smp_rmb() in line 300: The > >>control barrier from the loop inside spin_unlock_wait() is upgraded > >>to an acquire barrier by an additional smp_rmb(). Is this smp_rmb() > >>required? If I understand commit 2c6100227116 ("locking/qspinlock: > >>Fix spin_unlock_wait() some more") right, with this commit qspinlock > >>handle this case without the smp_rmb(). What I don't know if powerpc > >>is using qspinlock already, or if powerpc works without the > >>smp_rmb(). -- Manfred| > > No, ppc doesn't use qspinlocks, but as mentioned, spin_unlock_wait for > tickets are now at least an acquire (ppc is stronger), which match that > unlock store-release you are concerned about, this is as of 726328d92a4 > (locking/spinlock, arch: Update and fix spin_unlock_wait() implementations). > > This is exactly what you are doing by upgrading the ctrl dependency > to the acquire barrier in > http://git.cmpxchg.org/cgit.cgi/linux-mmots.git/tree/ipc/sem.c#n291 > and therefore we don't need it explicitly -- it also makes the comment > wrt spin_unlock_wait obsolete. Or am I'm misunderstanding you?
Ah, I was looking at 4.7 rather than current mainline. Perhaps Manfred was doing the same. Thanx, Paul