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:
[ . . . ]
quoted
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