diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2015-02-09 05:37:47 -0800 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2015-03-12 15:19:38 -0700 |
commit | 5c60d25fa1b22fdcf141f8006d31c32b08db7311 (patch) | |
tree | 046a31d8743db9569d64a0e9450da3b2bfe08a27 /kernel/rcu/tree.c | |
parent | 186bea5d35c821d49e70015d0a6eb73fe9f55d8c (diff) | |
download | talos-obmc-linux-5c60d25fa1b22fdcf141f8006d31c32b08db7311.tar.gz talos-obmc-linux-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/tree.c')
-rw-r--r-- | kernel/rcu/tree.c | 2 |
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) |