This fixes a long-standing latency bug in the powerpc qspinlock implementation that quite a few people have reported and helped out with debugging.
The first patch is a minimal fix that avoids the problem. The other patches are streamlining and improvements after the fix. Thanks, Nick Nicholas Piggin (6): powerpc/qspinlock: Fix stale propagated yield_cpu powerpc/qspinlock: stop queued waiters trying to set lock sleepy powerpc/qspinlock: propagate owner preemptedness rather than CPU number powerpc/qspinlock: don't propagate the not-sleepy state powerpc/qspinlock: Propagate sleepy if previous waiter is preempted powerpc/qspinlock: Rename yield_propagate_owner tunable arch/powerpc/lib/qspinlock.c | 119 +++++++++++++++-------------------- 1 file changed, 52 insertions(+), 67 deletions(-) -- 2.42.0