diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2020-03-19 03:16:37 +0300 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2020-04-27 21:03:52 +0300 |
commit | 9ae58d7bd11f1fc4c96389df11751f8593d8bd33 (patch) | |
tree | 2839dd92f0e5f91bedc25cd399b2a0ca619f48a1 /include/linux/rcupdate_trace.h | |
parent | 238dbce39ea467577ce7e41ee3e98748c436ed0f (diff) | |
download | linux-9ae58d7bd11f1fc4c96389df11751f8593d8bd33.tar.xz |
rcu-tasks: Add Kconfig option to mediate smp_mb() vs. IPI
This commit provides a new TASKS_TRACE_RCU_READ_MB Kconfig option that
enables use of read-side memory barriers by both rcu_read_lock_trace()
and rcu_read_unlock_trace() when the are executed with the
current->trc_reader_special.b.need_mb flag set. This flag is currently
never set. Doing that is the subject of a later commit.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'include/linux/rcupdate_trace.h')
-rw-r--r-- | include/linux/rcupdate_trace.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/rcupdate_trace.h b/include/linux/rcupdate_trace.h index c42b365ca176..4c25a41f8b27 100644 --- a/include/linux/rcupdate_trace.h +++ b/include/linux/rcupdate_trace.h @@ -50,7 +50,8 @@ static inline void rcu_read_lock_trace(void) struct task_struct *t = current; WRITE_ONCE(t->trc_reader_nesting, READ_ONCE(t->trc_reader_nesting) + 1); - if (t->trc_reader_special.b.need_mb) + if (IS_ENABLED(CONFIG_TASKS_TRACE_RCU_READ_MB) && + t->trc_reader_special.b.need_mb) smp_mb(); // Pairs with update-side barriers rcu_lock_acquire(&rcu_trace_lock_map); } |