rcu: Add diagnostics to grace-period cleanup
At grace-period initialization time, RCU checks that all quiescent states were really reported for the previous grace period. Now that grace-period cleanup has been split out of grace-period initialization, this commit also performs those checks at grace-period cleanup time. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
186bea5d35
commit
5c60d25fa1
|
@ -1920,6 +1920,8 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
|
||||||
rcu_for_each_node_breadth_first(rsp, rnp) {
|
rcu_for_each_node_breadth_first(rsp, rnp) {
|
||||||
raw_spin_lock_irq(&rnp->lock);
|
raw_spin_lock_irq(&rnp->lock);
|
||||||
smp_mb__after_unlock_lock();
|
smp_mb__after_unlock_lock();
|
||||||
|
WARN_ON_ONCE(rcu_preempt_blocked_readers_cgp(rnp));
|
||||||
|
WARN_ON_ONCE(rnp->qsmask);
|
||||||
ACCESS_ONCE(rnp->completed) = rsp->gpnum;
|
ACCESS_ONCE(rnp->completed) = rsp->gpnum;
|
||||||
rdp = this_cpu_ptr(rsp->rda);
|
rdp = this_cpu_ptr(rsp->rda);
|
||||||
if (rnp == rdp->mynode)
|
if (rnp == rdp->mynode)
|
||||||
|
|
Loading…
Reference in New Issue