This series (at least the first 3 patches) will get folded into the main series, but I will to post incremental changes first to make it easier to see the change.
The 3rd patch is now quite an ugly mess, but once it is folded in then everything should become simpler because that special case will never be added in the first place. So don't review it with a fine comb, all it really does is remove that branch. There were a couple of cases where I tried to make things a bit simpler but less efficient in contended paths. It turns out some microbenchmarks or pathological cases might be limited by this so I'm trying to find improvements. In one case there is already a better primitive available, in another case the end result allows a much bigger simplification so it should be worth the more complicated asm primitive. Thanks, Nick Nicholas Piggin (4): powerpc/qspinlock: Avoid cmpxchg pattern in lock stealing powerpc/qspinlock: Avoid cmpxchg style patterns in queue head locking powerpc/qspinlock: Remove !maybe_waiters special case queue head locking powerpc/qspinlock: add compile-time tuning adjustments arch/powerpc/include/asm/qspinlock.h | 61 ++++++- arch/powerpc/lib/qspinlock.c | 237 ++++++++++++--------------- 2 files changed, 167 insertions(+), 131 deletions(-) -- 2.37.2