diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2018-04-21 20:44:11 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2018-07-12 14:24:42 -0700 |
commit | 26d950a9451336a6b5abc1c8ca6c21df58e8d89f (patch) | |
tree | f68a88af62c5dda366ccc760afd57b223f8d5b1a /kernel/rcu/tree.h | |
parent | 8c42b1f39fdf9fde7cfc4024397255f31a860db6 (diff) | |
download | lwn-26d950a9451336a6b5abc1c8ca6c21df58e8d89f.tar.gz lwn-26d950a9451336a6b5abc1c8ca6c21df58e8d89f.zip |
rcu: Diagnostics for grace-period startup hangs
This commit causes a splat if RCU is idle and a request for a new grace
period is ignored for more than one second. This splat normally indicates
that some code path asked for a new grace period, but failed to wake up
the RCU grace-period kthread.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
[ paulmck: Fix bug located by Dan Carpenter and his static checker. ]
[ paulmck: Fix self-deadlock bug located 0day test robot. ]
[ paulmck: Disable unless CONFIG_PROVE_RCU=y. ]
Diffstat (limited to 'kernel/rcu/tree.h')
-rw-r--r-- | kernel/rcu/tree.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index 7365ac53fdd9..3c1942174c56 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@ -374,6 +374,8 @@ struct rcu_state { /* but in jiffies. */ unsigned long gp_activity; /* Time of last GP kthread */ /* activity in jiffies. */ + unsigned long gp_req_activity; /* Time of last GP request */ + /* in jiffies. */ unsigned long jiffies_stall; /* Time at which to check */ /* for CPU stalls. */ unsigned long jiffies_resched; /* Time at which to resched */ |