locking, sched: Introduce smp_cond_acquire() and use it
authorPeter Zijlstra <peterz@infradead.org>
Fri, 16 Oct 2015 12:39:38 +0000 (14:39 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 4 Dec 2015 09:33:41 +0000 (10:33 +0100)
commitb3e0b1b6d841a4b2f64fc09ea728913da8218424
tree93df412814210f3e4d36dae4e39487aec17a431e
parent829cf31751aa1c50b1527c1e0c821c99246b5639
locking, sched: Introduce smp_cond_acquire() and use it

Introduce smp_cond_acquire() which combines a control dependency and a
read barrier to form acquire semantics.

This primitive has two benefits:

 - it documents control dependencies,
 - its typically cheaper than using smp_load_acquire() in a loop.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/compiler.h
kernel/locking/qspinlock.c
kernel/sched/core.c
kernel/sched/sched.h