rcu: Improve diagnostics for spurious RCU CPU stall warnings
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 11 Dec 2014 18:20:59 +0000 (10:20 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 6 Jan 2015 19:05:27 +0000 (11:05 -0800)
commit6ccd2ecd422644277b7d8b37222e3af3f43ea9ae
tree7aabe254edd3dc05e992d631123a3275ef4dd1f6
parentfc908ed33e7c1428f799abb12399f906da03b397
rcu: Improve diagnostics for spurious RCU CPU stall warnings

The current RCU CPU stall warning code will print "Stall ended before
state dump start" any time that the stall-warning code is triggered on
a CPU that has already reported a quiescent state for the current grace
period and if all quiescent states have been reported for the current
grace period.  However, a true stall can result in these symptoms, for
example, by preventing RCU's grace-period kthreads from ever running

This commit therefore checks for this condition, reporting the end of
the stall only if one of the grace-period counters has actually advanced.
Otherwise, it reports the last time that the grace-period kthread made
meaningful progress.  (In normal situations, the grace-period kthread
should make meaningful progress at least every jiffies_till_next_fqs
jiffies.)

Reported-by: Miroslav Benes <mbenes@suse.cz>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Miroslav Benes <mbenes@suse.cz>
Documentation/RCU/stallwarn.txt
kernel/rcu/tree.c
kernel/rcu/tree.h