Re: [PATCH tip/core/rcu 0/55] Preview of RCU changes for 3.2

From: Josh Triplett
Date: Sun Oct 16 2011 - 22:06:37 EST


On Tue, Sep 06, 2011 at 11:00:15AM -0700, Paul E. McKenney wrote:
> Hello!
>
> This patchset adds RCU event tracing, improved diagnostics and
> documentation, and fixes a number of bugs, including several from an
> ongoing top-to-bottom inspection of RCU. The patches are as follows:
>
> 1. Place per-CPU kthreads' stack and task struct on the corresponding
> node on NUMA systems (courtesy of Eric Dumazet).
> 2. Avoid unnecessary self-wakeups for per-CPU kthreads
> (courtesy of Shaohua Li).
> 3,6,10,12,25,28,33.
> Documentations updates (some courtesy Wanlong Gao).
> 4. Add replacement checks for blocking within an RCU read-side
> critical section.
> 5. Header-file untangling part 1 of N: move rcu_head to types.h.
> 7. Fix mismatched variable declaration (courtesy of Andi Kleen).
> 8. Abstract out common grace-period-primitive code.
> 9. Update rcutorture to test newish RCU API members.
> 11. Drive RCU algorithm selection directly from SMP and PREEMPT.
> 13. Make rcu_torture_boost() wait for callbacks before telling
> debug-objects that they are done.
> 14-17,20,22.
> Add event tracing for RCU.
> 18. Update comments to reflect kthreads being used only when
> RCU priority boosting is enabled.
> 19. Move RCU_BOOSt data declarations to alow compiler to detect
> mismatches.
> 20. Make TINY_RCU use softirqs for RCU_BOOST=n.
> 23. Simplify quiescent-state accounting.
> 24. Stop passing rcu_read_lock_held() to rcu_dereference_protected()
> (courtesy of Michal Hocko).
> 26. Remove unused and redundant RCU API members.
> 27. Allow rcutorture's stat_interval parameter to be changed at runtime
> to make it easier to test RCU in guest OSes.
> 28. Removed unused nohz_cpu_mask (courtesy of Alex Shi).
> 30. Eliminate in_irq() checks in rcu_enter_nohz().
> 31. Fix rcu_implicit_dynticks_qs() local-variable size mismatches.
> 32. Make rcu_assign_pointer() unconditionally emit memory barrier
> to silence new gcc warnings (courtesy of Eric Dumazet).
> 34. Move __rcu_read_lock()'s barrier within if-statement.
> 35. Dump local stack for CPU stall warnings if cannot dump all stacks.
> 36. Prevent early-boot set_need_resched() from __rcu_pending().
> 37. Simplify unboosting checks.
> 38. Prohibit RCU grace periods during early boot.
> 39. Suppress NMI backtraces when CPU stall ends before dump.
> 40. Avoid just-online CPU needlessly rescheding itself.
> 41. Permit rt_mutex_unlock() with irqs disabled.
> 42-43. Prevent end-of-test rcutorture hangs.
> 44. Wire up RCU_BOOST_PRIO, use conventional kthread naming scheme
> (courtesy of Mike Galbraith).
> 45. Check for entering dyntick-idle in RCU read-side critical section.
> 46. Adjust RCU_FAST_NO_HZ to avoid false quiescent states.
> 47. Avoid concurrent end of old GP with start of new GP.
> 48. Strengthen powerpc value-returning atomic memory ordering.
> 49-51. Detect illegal RCU use from dyntick-idle mode (courtesy of
> Frederic Weisbecker).
> 52. Remove an unnecessary layer of abstraction from PROVE_RCU checking.
> 53. Detect illegal SRCU use from dyntick-idle mode.
> 54. Make SRCU use common lockdep-splat code.
> 55. Placeholder patch that disables illegal tracing from dyntick-idle
> mode (illegal because tracing uses RCU).

I responded to a few of the patches with comments and potential issues.
I also don't consider myself qualified to review patch 48/55, "powerpc:
strengthen value-returning-atomics memory barriers". For the rest:

Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/