lkml.org 
[lkml]   [2015]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[PATCH tip/core/rcu 0/9] Stall-warning changes for 3.20
Hello!

This series contains stall-warning changes, mostly inspired by the
long-running "frequent lockups in 3.18rc4" LKML thread, which may
be found at https://lkml.org/lkml/2014/11/14/656. Those who denigrate
testing clearly have not been up against trinity. ;-)

1. Set default to RCU_CPU_STALL_INFO=y. This is in preparation for
eliminating this Kconfig variable entirely in a release or two.

2. Add rcutorture scripting checks for stall ending before dump start.

3. Make RCU_CPU_STALL_INFO include number of attempts to force
quiescent states (which mostly identifies idle CPUs).

4. Improve diagnostics for spurious RCU CPU stall warnings, for
example, identifying when RCU's grace-period kthreads have
been prevented from running.

5. Handle gpnum/completed wrap while dyntick idle. This is a
long-standing known bug, but one that requires a CPU to remain
idle for 4,294,967,296 grace periods on 32-bit systems, and
lots more on 64-bit systems. However, with the advent of
NO_HZ_FULL, this sort of thing becomes more likely, so time
to fix it.

6. Run grace-period kthreads at real-time priority. Not yet ready
for mainline, but the 0day test robot reports that it greatly
reduces the number of hangs seen in testing, so something sort
of like it is needed. This patch also reduced the number of
stalls in the 3.18-rc4 efforts.

7. Make cond_resched_rcu_qs() apply to normal RCU flavors, allowing
it to be placed in long-running loops that would otherwise result
in RCU CPU stall warnings.

8. Add GP-kthread-starvation checks to CPU stall warnings, making
previous encoded warnings more human-readable.

9. Fix RCU CPU stall detection in tiny implementation, courtesy of
Miroslav Benes.

10. Initialize tiny RCU stall-warning timeouts at boot.

Thanx, Paul

------------------------------------------------------------------------

b/Documentation/RCU/stallwarn.txt | 14 +
b/Documentation/RCU/trace.txt | 32 +--
b/include/linux/rcupdate.h | 3
b/include/linux/rcutiny.h | 5
b/include/linux/rcutree.h | 2
b/init/Kconfig | 1
b/kernel/rcu/tiny.c | 2
b/kernel/rcu/tiny_plugin.h | 7
b/kernel/rcu/tree.c | 119 ++++++++++++--
b/kernel/rcu/tree.h | 7
b/kernel/rcu/tree_plugin.h | 10 -
b/kernel/rcu/tree_trace.c | 8
b/lib/Kconfig.debug | 2
b/tools/testing/selftests/rcutorture/bin/parse-console.sh | 2
14 files changed, 164 insertions(+), 50 deletions(-)



\
 
 \ /
  Last update: 2015-01-07 19:21    [W:0.071 / U:1.904 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site