rcu: Add RCU_NONIDLE() for idle-loop RCU read-side critical sections
authorPaul E. McKenney <paul.mckenney@linaro.org>
Thu, 2 Feb 2012 23:42:04 +0000 (15:42 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 21 Feb 2012 17:06:13 +0000 (09:06 -0800)
commit8a2ecf474d3ee8dd5d001490349e422cec52f39f
treeaa706d632a059dd10d9305cc6abbea5889a839d9
parent29e37d814188ac8d60f2120583704d3ef6d634b4
rcu: Add RCU_NONIDLE() for idle-loop RCU read-side critical sections

RCU, RCU-bh, and RCU-sched read-side critical sections are forbidden
in the inner idle loop, that is, between the rcu_idle_enter() and the
rcu_idle_exit() -- RCU will happily ignore any such read-side critical
sections.  However, things like powertop need tracepoints in the inner
idle loop.

This commit therefore provides an RCU_NONIDLE() macro that can be used to
wrap code in the idle loop that requires RCU read-side critical sections.

Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Acked-by: Deepthi Dharwar <deepthi@linux.vnet.ibm.com>
include/linux/rcupdate.h
kernel/rcutiny.c
kernel/rcutree.c