rcu: Exclude near-simultaneous RCU CPU stall warnings
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 9 Apr 2018 18:04:46 +0000 (11:04 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 26 Jun 2018 19:25:56 +0000 (12:25 -0700)
commit8c42b1f39fdf9fde7cfc4024397255f31a860db6
treecafa367b0ac5f20e061959ce35dc52acf7f53be8
parentce11fae8d43fe9a36823fbbfe7c44de775b7e346
rcu: Exclude near-simultaneous RCU CPU stall warnings

There is a two-jiffy delay between the time that a CPU will self-report
an RCU CPU stall warning and the time that some other CPU will report a
warning on behalf of the first CPU.  This has worked well in the past,
but on busy systems, it is possible for the two warnings to overlap,
which makes interpreting them extremely difficult.

This commit therefore uses a cmpxchg-based timing decision that
allows only one report in a given one-minute period (assuming default
stall-warning Kconfig parameters).  This approach will of course fail
if you are seeing minute-long vCPU preemption, but in that case the
overlapping RCU CPU stall warnings are the least of your worries.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tree.c