Messages in this thread | | | Date | Thu, 2 Feb 2012 18:43:46 -0800 | From | Josh Triplett <> | Subject | Re: [PATCH RFC 0/3] Fix cpuidle_idle_call() RCU usage |
| |
On Thu, Feb 02, 2012 at 05:12:08PM -0800, Paul E. McKenney wrote: > This patch series is a second attempt to fix the idle-loop uses of RCU, > see https://lkml.org/lkml/2012/2/1/741 for v1. Where the first series > attempted to drive rcu_idle_enter() and rcu_idle_exit() further down > into the Linux kernels multitude of idle loops, this patch instead > marks specific idle-loop operations containing RCU read-side critical > sections, as suggested by Nicolas Pitre and Steven Rostedt. The possibility > of code shared between idle and non-idle also requires the ability to nest > rcu_idle_enter() calls. The individual patches are as follows: > > 1. Allow nesting of rcu_idle_enter() and rcu_idle_exit(). > 2. Add an RCU_NONIDLE() macro to enclose idle-loop code that > contains RCU read-side critical sections. > 3. Use RCU_NONIDLE() to protect cpuidle_idle_call()'s tracepoints. > > This patchset has the distinct advantage of avoiding touching any > architecture-specific code. ;-) > > Thanx, Paul > > ------------------------------------------------------------------------ > > b/drivers/cpuidle/cpuidle.c | 12 ++++++++---- > b/include/linux/rcupdate.h | 27 +++++++++++++++++++++++++++ > b/kernel/rcu.h | 18 +++++++++++++++++- > b/kernel/rcutiny.c | 16 ++++++++++++---- > b/kernel/rcutree.c | 19 +++++++++++++------ > kernel/rcutiny.c | 2 ++ > kernel/rcutree.c | 2 ++ > 7 files changed, 81 insertions(+), 15 deletions(-)
Looks good to me. Much cleaner.
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
| |