Skip to content

Commit a7e4074

Browse files
Frederic Weisbeckerfbq
authored andcommitted
rcu/exp: Remove full barrier upon main thread wakeup
When an expedited grace period is ending, care must be taken so that all the quiescent states propagated up to the root are correctly ordered against the wake up of the main expedited grace period workqueue. This ordering is already carried through the root rnp locking augmented by an smp_mb__after_unlock_lock() barrier. Therefore the explicit smp_mb() placed before the wake up is not needed and can be removed. 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>
1 parent 41bccc9 commit a7e4074

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

kernel/rcu/tree_exp.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,9 @@ static void __rcu_report_exp_rnp(struct rcu_node *rnp,
198198
}
199199
if (rnp->parent == NULL) {
200200
raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
201-
if (wake) {
202-
smp_mb(); /* EGP done before wake_up(). */
201+
if (wake)
203202
swake_up_one_online(&rcu_state.expedited_wq);
204-
}
203+
205204
break;
206205
}
207206
mask = rnp->grpmask;

0 commit comments

Comments
 (0)