The current debug spinlock implementation is a TATAS unfair lock. This can occasionally lead to system lockup with a debug kernel because of the unfairness of the lock rather than inherent locking problem.
This patch set changes the debug spinlock implementation to a mostly fair spinlock based on the MCS lock similar to what is done in qspinlock. Waiman Long (2): locking/spinlock_debug: Reduce lockup suspected message clutter locking/spinlock_debug: Reduce lock cacheline contention include/linux/spinlock_types.h | 8 +++-- kernel/locking/spinlock_debug.c | 73 ++++++++++++++++++++++++++++++----------- 2 files changed, 58 insertions(+), 23 deletions(-) -- 1.8.3.1