Subject: [PATCH RFC idle 2/3] arm: Avoid invoking RCU when CPU is idle

From: [email-masked] (Paul E. McKenney)
Date: Thu, 2 Feb 2012 15:51:28 -0800

On Thu, Feb 02, 2012 at 03:27:36PM -0800, Paul E. McKenney wrote:
> On Thu, Feb 02, 2012 at 06:03:39PM -0500, Steven Rostedt wrote:
> 
> [ . . . ]
> 
> > Anyway, one answer is (and I was talking with Paul about this on IRC) is
> > that we can create a special "TRACE_EVENT_IDLE()" that will explicitly
> > call "rcu_idle_exit/enter()" as it expects to be called with it off.
> > 
> > This should solve most issues I believe.
> 
> You OK with something like RCU_NONIDLE() rather than RCU_EVENT_IDLE()?
> I have this funny feeling that tracing won't be the only thing using
> RCU from idle.  :-/
> 
> Something like this, perhaps?

Or perhaps with the trailing "while (0)" included:

	#define RCU_NONIDLE(a) \
		do { \
			rcu_idle_exit(); \
			do { a; } while (0); \
			rcu_idle_enter(); \
		} while (0)

							Thanx, Paul