aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-02-09 08:37:47 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-03-12 18:19:38 -0400
commit5c60d25fa1b22fdcf141f8006d31c32b08db7311 (patch)
tree046a31d8743db9569d64a0e9450da3b2bfe08a27
parent186bea5d35c821d49e70015d0a6eb73fe9f55d8c (diff)
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>
-rw-r--r--kernel/rcu/tree.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index d5247ed44004..17b5abf999ca 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -1920,6 +1920,8 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
1920 rcu_for_each_node_breadth_first(rsp, rnp) { 1920 rcu_for_each_node_breadth_first(rsp, rnp) {
1921 raw_spin_lock_irq(&rnp->lock); 1921 raw_spin_lock_irq(&rnp->lock);
1922 smp_mb__after_unlock_lock(); 1922 smp_mb__after_unlock_lock();
1923 WARN_ON_ONCE(rcu_preempt_blocked_readers_cgp(rnp));
1924 WARN_ON_ONCE(rnp->qsmask);
1923 ACCESS_ONCE(rnp->completed) = rsp->gpnum; 1925 ACCESS_ONCE(rnp->completed) = rsp->gpnum;
1924 rdp = this_cpu_ptr(rsp->rda); 1926 rdp = this_cpu_ptr(rsp->rda);
1925 if (rnp == rdp->mynode) 1927 if (rnp == rdp->mynode)