Will Deacon bbc29076d2 locking/qspinlock: Use smp_cond_load_relaxed() to wait for next node
When a locker reaches the head of the queue and takes the lock, a
concurrent locker may enqueue and force the lock holder to spin
whilst its node->next field is initialised. Rather than open-code
a READ_ONCE/cpu_relax() loop, this can be implemented using
smp_cond_load_relaxed() instead.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Waiman Long <longman@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: boqun.feng@gmail.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: paulmck@linux.vnet.ibm.com
Link: http://lkml.kernel.org/r/1524738868-31318-10-git-send-email-will.deacon@arm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Danny Lin <danny@kdrag0n.dev>
2021-06-13 21:03:05 +05:30
..
2020-07-09 11:15:36 +02:00
2020-05-03 08:51:19 +02:00
2019-12-01 09:14:03 +01:00
2021-05-25 19:26:37 +05:30
2021-05-25 19:26:37 +05:30
2020-04-02 16:34:21 +02:00
2020-01-13 19:40:11 +00:00
2021-03-09 16:31:48 +05:30
2019-08-19 12:42:20 -07:00
2020-04-02 16:34:20 +02:00
2019-08-12 13:29:46 -04:00
2020-05-20 08:16:58 +02:00