aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-02-09 05:37:47 -0800
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-03-12 15:19:38 -0700
commit5c60d25fa1b22fdcf141f8006d31c32b08db7311 (patch)
tree046a31d8743db9569d64a0e9450da3b2bfe08a27 /kernel/rcu
parentrcutorture: Default to grace-period-initialization delays (diff)
downloadlinux-dev-5c60d25fa1b22fdcf141f8006d31c32b08db7311.tar.xz
linux-dev-5c60d25fa1b22fdcf141f8006d31c32b08db7311.zip
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>
Diffstat (limited to 'kernel/rcu')
-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)
rcu_for_each_node_breadth_first(rsp, rnp) {
raw_spin_lock_irq(&rnp->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;
rdp = this_cpu_ptr(rsp->rda);
if (rnp == rdp->mynode)