diff options
author | Frederic Weisbecker <frederic@kernel.org> | 2024-05-15 14:53:30 +0200 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2024-06-28 15:44:12 +0200 |
commit | e7a3c8ea6e2509f71150fa13b00da3ef2bbe2387 (patch) | |
tree | 2481c750bbea80424e8fc587a6e63fc64ab46420 /kernel/rcu/tree.c | |
parent | rcu/exp: Remove superfluous full memory barrier upon first EQS snapshot (diff) | |
download | linux-e7a3c8ea6e2509f71150fa13b00da3ef2bbe2387.tar.xz linux-e7a3c8ea6e2509f71150fa13b00da3ef2bbe2387.zip |
rcu: Remove full memory barrier on boot time eqs sanity check
When the boot CPU initializes the per-CPU data on behalf of all possible
CPUs, a sanity check is performed on each of them to make sure none is
initialized in an extended quiescent state.
This check involves a full memory barrier which is useless at this early
boot stage.
Do a plain access instead.
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r-- | kernel/rcu/tree.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index da5718da280d..57d813781749 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4786,7 +4786,7 @@ rcu_boot_init_percpu_data(int cpu) rdp->grpmask = leaf_node_cpu_bit(rdp->mynode, cpu); INIT_WORK(&rdp->strict_work, strict_work_handler); WARN_ON_ONCE(ct->dynticks_nesting != 1); - WARN_ON_ONCE(rcu_dynticks_in_eqs(rcu_dynticks_snap(cpu))); + WARN_ON_ONCE(rcu_dynticks_in_eqs(ct_dynticks_cpu(cpu))); rdp->barrier_seq_snap = rcu_state.barrier_sequence; rdp->rcu_ofl_gp_seq = rcu_state.gp_seq; rdp->rcu_ofl_gp_state = RCU_GP_CLEANED; |