rcu: Comment rcu_gp_init() code waiting for CPU-hotplug operations

Near the beginning of rcu_gp_init() is a per-rcu_node loop that waits
for CPU-hotplug operations that might have started before the new
grace period did.  This commit adds a comment explaining that this
wait does not exclude CPU-hotplug operations.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
Paul E. McKenney 2021-07-26 11:57:39 -07:00
parent 3ac8587852
commit ebc88ad491

View File

@ -1775,6 +1775,8 @@ static noinline_for_stack bool rcu_gp_init(void)
*/ */
WRITE_ONCE(rcu_state.gp_state, RCU_GP_ONOFF); WRITE_ONCE(rcu_state.gp_state, RCU_GP_ONOFF);
rcu_for_each_leaf_node(rnp) { rcu_for_each_leaf_node(rnp) {
// Wait for CPU-hotplug operations that might have
// started before this grace period did.
smp_mb(); // Pair with barriers used when updating ->ofl_seq to odd values. smp_mb(); // Pair with barriers used when updating ->ofl_seq to odd values.
firstseq = READ_ONCE(rnp->ofl_seq); firstseq = READ_ONCE(rnp->ofl_seq);
if (firstseq & 0x1) if (firstseq & 0x1)