rcu: RCU-based detection of stalled CPUs for Classic RCU
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 2 Oct 2008 23:06:39 +0000 (16:06 -0700)
committerIngo Molnar <mingo@elte.hu>
Fri, 3 Oct 2008 08:36:08 +0000 (10:36 +0200)
commit2133b5d7ff531bc15a923db4a6a50bf96c561be9
tree5917515eaec573fbc3d4a734769d6184beb83dbb
parentb5259d944279d0b7e78a83849a352d8ba0447c4c
rcu: RCU-based detection of stalled CPUs for Classic RCU

This patch adds stalled-CPU detection to Classic RCU.  This capability
is enabled by a new config variable CONFIG_RCU_CPU_STALL_DETECTOR, which
defaults disabled.

This is a debugging feature to detect infinite loops in kernel code, not
something that non-kernel-hackers would be expected to care about.

This feature can detect looping CPUs in !PREEMPT builds and looping CPUs
with preemption disabled in PREEMPT builds.  This is essentially a port of
this functionality from the treercu patch, replacing the stall debug patch
that is already in tip/core/rcu (commit 67182ae1c4).

The changes from the patch in tip/core/rcu include making the config
variable name match that in treercu, changing from seconds to jiffies to
avoid spurious warnings, and printing a boot message when this feature
is enabled.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
include/linux/rcuclassic.h
kernel/rcuclassic.c
lib/Kconfig.debug