]> git.baikalelectronics.ru Git - kernel.git/commit
rcu: Detect illegal rcu dereference in extended quiescent state
authorFrederic Weisbecker <fweisbec@gmail.com>
Fri, 7 Oct 2011 23:25:18 +0000 (16:25 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 11 Dec 2011 18:31:30 +0000 (10:31 -0800)
commitca2c113684a03b4c1f6a724dc8d68cf84a9aa4d0
tree207337c207fecf2e05e52ffb3003831d240529fd
parent54a3a6953a9c5890ba93bfed84fab3a04bd4281a
rcu: Detect illegal rcu dereference in extended quiescent state

Report that none of the rcu read lock maps are held while in an RCU
extended quiescent state (the section between rcu_idle_enter()
and rcu_idle_exit()). This helps detect any use of rcu_dereference()
and friends from within the section in idle where RCU is not allowed.

This way we can guarantee an extended quiescent window where the CPU
can be put in dyntick idle mode or can simply aoid to be part of any
global grace period completion while in the idle loop.

Uses of RCU from such mode are totally ignored by RCU, hence the
importance of these checks.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
include/linux/rcupdate.h
kernel/rcupdate.c
kernel/rcutiny.c
kernel/rcutree.c