Thread (37 messages) 37 messages, 5 authors, 2015-12-11
DORMANTno replies

[PATCH] arm64: spinlock: serialise spin_unlock_wait against concurrent lockers

From: Will Deacon <hidden>
Date: 2015-12-11 13:54:58

On Fri, Dec 11, 2015 at 05:42:26AM -0800, Paul E. McKenney wrote:
On Fri, Dec 11, 2015 at 09:46:52AM +0000, Will Deacon wrote:
quoted
On Fri, Dec 11, 2015 at 04:09:11PM +0800, Boqun Feng wrote:
quoted
In conclusion, we have more than a half of uses working well already,
and each of the fix-needed ones has only one related critical section
and only one related data access in it. So on PPC, I think my proposal
won't have more smp_mb() instances to fix all current use cases than
adding smp_mb__after_unlock_lock() after the lock acquisition in each
related lock critical section.

Of course, my proposal needs the buy-ins of both PPC and ARM64v8, so
Paul and Will, what do you think? ;-)
I already queued the change promoting it to LOCK for arm64. It makes the
semantics easy to understand and I've failed to measure any difference
in performance. It's also robust against any future users of the macro
and matches what other architectures do.
What size system did you do your performance testing on?
A tiny system by your standards (4 clusters of 2 CPUs), but my take for
arm64 is that either wfe-based ll/sc loops scale sufficiently or you
build with the new atomic instructions (that don't have an issue here).

I have a bigger system (10s of cores) I can try with, but I don't
currently have the ability to run mainline on it.

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help