rcu: make rcutorture more vicious: reinstate boot-time testing
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 18 Jun 2008 16:26:49 +0000 (09:26 -0700)
committerIngo Molnar <mingo@elte.hu>
Thu, 19 Jun 2008 09:22:15 +0000 (11:22 +0200)
commit31a72bce0bd6f3e0114009288bccbc96376eeeca
tree14a817fbe0b47511d3119360c47959d48f851140
parentd120f65f3aaf306c957bc4c82e510f5b0f1e9b27
rcu: make rcutorture more vicious: reinstate boot-time testing

This patch re-institutes the ability to build rcutorture directly into
the Linux kernel.  The reason that this capability was removed was that
this could result in your kernel being pretty much useless, as rcutorture
would be running starting from early boot.  This problem has been avoided
by (1) making rcutorture run only three seconds of every six by default,
(2) adding a CONFIG_RCU_TORTURE_TEST_RUNNABLE that permits rcutorture
to be quiesced at boot time, and (3) adding a sysctl in /proc named
/proc/sys/kernel/rcutorture_runnable that permits rcutorture to be
quiesced and unquiesced when built into the kernel.

Please note that this /proc file is -not- available when rcutorture
is built as a module.  Please also note that to get the earlier
take-no-prisoners behavior, you must use the boot command line to set
rcutorture's "stutter" parameter to zero.

The rcutorture quiescing mechanism is currently quite crude: loops
in each rcutorture process that poll a global variable once per tick.
Suggestions for improvement are welcome.  The default action will
be to reduce the polling rate to a few times per second.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Suggested-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Documentation/RCU/torture.txt
kernel/rcutorture.c
kernel/sysctl.c
lib/Kconfig.debug