summaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
authorFrederic Weisbecker <frederic@kernel.org>2023-11-15 14:11:27 -0500
committerBoqun Feng <boqun.feng@gmail.com>2024-02-14 07:50:44 -0800
commitca16265aaf9d357035000833636dcddbfafacac3 (patch)
treee73b5e494561eb2df838235be9f5c86116864763 /kernel/rcu/tree.c
parent41bccc98fb7931d63d03f326a746ac4d429c1dd3 (diff)
downloadlinux-ca16265aaf9d357035000833636dcddbfafacac3.tar.gz
linux-ca16265aaf9d357035000833636dcddbfafacac3.tar.bz2
linux-ca16265aaf9d357035000833636dcddbfafacac3.zip
rcu/nocb: Remove needless LOAD-ACQUIRE
The LOAD-ACQUIRE access performed on rdp->nocb_cb_sleep advertizes ordering callback execution against grace period completion. However this is contradicted by the following: * This LOAD-ACQUIRE doesn't pair with anything. The only counterpart barrier that can be found is the smp_mb() placed after callbacks advancing in nocb_gp_wait(). However the barrier is placed _after_ ->nocb_cb_sleep write. * Callbacks can be concurrently advanced between the LOAD-ACQUIRE on ->nocb_cb_sleep and the call to rcu_segcblist_extract_done_cbs() in rcu_do_batch(), making any ordering based on ->nocb_cb_sleep broken. * Both rcu_segcblist_extract_done_cbs() and rcu_advance_cbs() are called under the nocb_lock, the latter hereby providing already the desired ACQUIRE semantics. Therefore it is safe to access ->nocb_cb_sleep with a simple compiler barrier. Signed-off-by: Frederic Weisbecker <frederic@kernel.org> Reviewed-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Diffstat (limited to 'kernel/rcu/tree.c')
0 files changed, 0 insertions, 0 deletions