Message ID | 20240515125332.9306-5-frederic@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | f89fcb25972c554c197d07052e9311a14dbcf656 |
Headers | show |
Series | rcu: Remove several redundant memory barriers | expand |
On 15/05/24 14:53, Frederic Weisbecker wrote: > 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> Reviewed-by: Valentin Schneider <vschneid@redhat.com>
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index f5354de5644b..02f6f3483482 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4812,7 +4812,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;
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> --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)