]> git.baikalelectronics.ru Git - kernel.git/commit
rcu: optionally leave lockdep enabled after RCU lockdep splat
authorLai Jiangshan <laijs@cn.fujitsu.com>
Tue, 20 Apr 2010 08:23:07 +0000 (16:23 +0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 10 May 2010 18:08:31 +0000 (11:08 -0700)
commitc8939e6d20980f047def61e033629151265f16c4
tree2bc2cfc9c1a032d51a3d99a10e309e100b9eea4a
parent46d219cb11cef33daaa41380b0b78e70435c3df7
rcu: optionally leave lockdep enabled after RCU lockdep splat

There is no need to disable lockdep after an RCU lockdep splat,
so remove the debug_lockdeps_off() from lockdep_rcu_dereference().
To avoid repeated lockdep splats, use a static variable in the inlined
rcu_dereference_check() and rcu_dereference_protected() macros so that
a given instance splats only once, but so that multiple instances can
be detected per boot.

This is controlled by a new config variable CONFIG_PROVE_RCU_REPEATEDLY,
which is disabled by default.  This provides the normal lockdep behavior
by default, but permits people who want to find multiple RCU-lockdep
splats per boot to easily do so.

Requested-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Tested-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
include/linux/rcupdate.h
kernel/lockdep.c
lib/Kconfig.debug