diff options
author | Peter Zijlstra <peterz@infradead.org> | 2015-10-16 14:39:38 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-12-04 10:33:41 +0100 |
commit | b3e0b1b6d841a4b2f64fc09ea728913da8218424 (patch) | |
tree | 93df412814210f3e4d36dae4e39487aec17a431e /kernel/sched/sched.h | |
parent | 829cf31751aa1c50b1527c1e0c821c99246b5639 (diff) | |
download | talos-obmc-linux-b3e0b1b6d841a4b2f64fc09ea728913da8218424.tar.gz talos-obmc-linux-b3e0b1b6d841a4b2f64fc09ea728913da8218424.zip |
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>
Diffstat (limited to 'kernel/sched/sched.h')
-rw-r--r-- | kernel/sched/sched.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index b242775bf670..1e0bb4afe3fd 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1076,7 +1076,7 @@ static inline void finish_lock_switch(struct rq *rq, struct task_struct *prev) * In particular, the load of prev->state in finish_task_switch() must * happen before this. * - * Pairs with the control dependency and rmb in try_to_wake_up(). + * Pairs with the smp_cond_acquire() in try_to_wake_up(). */ smp_store_release(&prev->on_cpu, 0); #endif |