Preview of RCU changes for 3.2
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest55 patches 42 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/55 | rcu: Use kthread_create_on_node()kernel/ kernel/ | +7 | 0 replies | |
| 2/55 | rcu: Avoid unnecessary self-wakeup of per-CPU kthreadskernel/ | +3 | 0 replies | |
| 3/55 | rcu: Update documentation to flag RCU_BOOST trace informationDocumentation/ | +4 | 0 replies | |
| 4/55 | rcu: Restore checks for blocking in RCU read-side critical sectionsinclude/ include/ kernel/ +2 more | +75 | 0 replies | |
| 5/55 | rcu: Move rcu_head definition to types.hinclude/ include/ | +11 | 2 replies | |
| 6/55 | rcu: Update rcutorture documentationDocumentation/ | +99 | 0 replies | |
| 7/55 | rcu: Fix mismatched variable in rcutree_trace.ckernel/ | +1 | 0 replies | |
| 8/55 | rcu: Abstract common code for RCU grace-period-wait primitivesinclude/ include/ include/ +5 more | +113 | 0 replies | |
| 9/55 | rcu: Catch rcutorture up to new RCU API additionsDocumentation/ kernel/ | +24 | 0 replies | |
| 10/55 | rcu: Fix RCU's NMI documentationDocumentation/ | +1 | 0 replies | |
| 11/55 | rcu: Drive configuration directly from SMP and PREEMPTinit/ | +3 | 0 replies | |
| 12/55 | rcu: Fix pathnames in documentationDocumentation/ | +2 | 0 replies | |
| 13/55 | rcu: Don't destroy rcu_torture_boost() callback until it is donekernel/ | +1 | 0 replies | |
| 14/55 | rcu: Add event-tracing for RCU callback invocationinclude/ include/ kernel/ +3 more | +219 | 0 replies | |
| 15/55 | rcu: Event-trace markers for computing RCU CPU utilizationinclude/ kernel/ | +68 | 0 replies | |
| 16/55 | rcu: Put names into TINY_RCU structures under RCU_TRACEkernel/ kernel/ kernel/ +2 more | +18 | 0 replies | |
| 17/55 | rcu: Add RCU type to callback-invocation tracinginclude/ kernel/ kernel/ | +26 | 0 replies | |
| 18/55 | rcu: Update comments to reflect softirqs vs. kthreadskernel/ kernel/ | +14 | 0 replies | |
| 19/55 | rcu: Move RCU_BOOST declarations to allow compiler checkingkernel/ kernel/ | +7 | 0 replies | |
| 20/55 | rcu: Add event-trace markers to TREE_RCU kthreadsinclude/ kernel/ | +15 | 0 replies | |
| 21/55 | rcu: Make TINY_RCU also use softirq for RCU_BOOST=ninclude/ kernel/ kernel/ | +97 | 0 replies | |
| 22/55 | rcu: Add grace-period, quiescent-state, and call_rcu trace eventsinclude/ kernel/ kernel/ +3 more | +399 | 2 replies | |
| 23/55 | rcu: Simplify quiescent-state accountingDocumentation/ kernel/ kernel/ +2 more | +49 | 0 replies | |
| 24/55 | rcu: Not necessary to pass rcu_read_lock_held() to rcu_dereference_protected()Documentation/ | +4 | 0 replies | |
| 25/55 | rcu: Update documentation for additional RCU lockdep functionsDocumentation/ | +21 | 0 replies | |
| 26/55 | rcu: Remove unused and redundant interfacesinclude/ | +0 | 0 replies | |
| 27/55 | rcu: Allow rcutorture's stat_interval parameter to be changed at runtimekernel/ | +1 | 0 replies | |
| 28/55 | rcu: Document interpretation of RCU-lockdep splatsDocumentation/ | +110 | 0 replies | |
| 29/55 | nohz: Remove nohz_cpu_maskinclude/ kernel/ kernel/ | +0 | 0 replies | |
| 30/55 | rcu: Eliminate in_irq() checks in rcu_enter_nohz()kernel/ | +0 | 0 replies | |
| 31/55 | rcu: Make rcu_implicit_dynticks_qs() locals be correct sizekernel/ | +5 | 2 replies | |
| 32/55 | rcu: Make rcu_assign_pointer() unconditionally insert a memory barrierinclude/ | +1 | 0 replies | |
| 33/55 | rcu: Improve rcu_assign_pointer() and RCU_INIT_POINTER() documentationinclude/ | +40 | 0 replies | |
| 34/55 | rcu: Move __rcu_read_unlock()'s barrier() within if-statementinclude/ kernel/ | +3 | 0 replies | |
| 35/55 | rcu: Dump local stack if cannot dump all CPUs' stackskernel/ | +4 | 0 replies | |
| 36/55 | rcu: Prevent early boot set_need_resched() from __rcu_pending()kernel/ | +2 | 2 replies | |
| 37/55 | rcu: Simplify unboosting checksinclude/ kernel/ | +10 | 0 replies | |
| 38/55 | rcu: Prohibit grace periods during early bootkernel/ | +5 | 1 reply | |
| 39/55 | rcu: Suppress NMI backtraces when stall ends before dumpkernel/ kernel/ kernel/ | +19 | 0 replies | |
| 40/55 | rcu: Avoid having just-onlined CPU resched itself when RCU is idlekernel/ | +8 | 0 replies | |
| 41/55 | rcu: Permit rt_mutex_unlock() with irqs disabledkernel/ kernel/ | +14 | 4 replies | |
| 42/55 | rcu: Make rcu_torture_fqs() exit loops at end of testkernel/ | +6 | 2 replies | |
| 43/55 | rcu: Make rcu_torture_boost() exit loops at end of testkernel/ | +2 | 0 replies | |
| 44/55 | rcu: wire up RCU_BOOST_PRIO for rcutreekernel/ kernel/ | +15 | 5 replies | |
| 45/55 | rcu: check for entering dyntick-idle mode while in read-side critical sectioninclude/ kernel/ | +6 | 0 replies | |
| 46/55 | rcu: Remove rcu_needs_cpu_flush() to avoid false quiescent stateskernel/ kernel/ kernel/ | +0 | 0 replies | |
| 47/55 | rcu: Move propagation of ->completed from rcu_start_gp() to rcu_report_qs_rsp()kernel/ | +51 | 0 replies | |
| 48/55 | powerpc: strengthen value-returning-atomics memory barriersarch/ | +1 | 3 replies | |
| 49/55 | rcu: Detect illegal rcu dereference in extended quiescent stateinclude/ kernel/ kernel/ +1 more | +82 | 0 replies | |
| 50/55 | rcu: Inform the user about dynticks-idle mode on PROVE_RCU warningkernel/ | +20 | 0 replies | |
| 51/55 | rcu: Warn when rcu_read_lock() is used in extended quiescent stateinclude/ | +42 | 0 replies | |
| 52/55 | rcu: Remove one layer of abstraction from PROVE_RCU checkinginclude/ | +8 | 0 replies | |
| 53/55 | rcu: Warn when srcu_read_lock() is used in an extended quiescent stateinclude/ | +15 | 3 replies | |
| 54/55 | rcu: Make srcu_read_lock_held() call common lockdep-enabled functioninclude/ | +4 | 2 replies | |
| 55/55 | powerpc: Work around tracing from dyntick-idle modearch/ | +6 | 7 replies |
Reviews trailers per patch
4 of 55 patches have a Reviewed-by or Acked-by of their own; the series has one for all of them.
| Patch | David S. Miller | Mathieu Desnoyers | Olof Johansson | Josh Triplett |
|---|---|---|---|---|
| Series | R-b | |||
| 1/55 | ||||
| 2/55 | ||||
| 3/55 | ||||
| 4/55 | ||||
| 5/55 | A-b | |||
| 6/55 | ||||
| 7/55 | ||||
| 8/55 | ||||
| 9/55 | ||||
| 10/55 | A-b | |||
| 11/55 | ||||
| 12/55 | ||||
| 13/55 | ||||
| 14/55 | ||||
| 15/55 | ||||
| 16/55 | ||||
| 17/55 | ||||
| 18/55 | ||||
| 19/55 | ||||
| 20/55 | ||||
| 21/55 | ||||
| 22/55 | ||||
| 23/55 | ||||
| 24/55 | ||||
| 25/55 | ||||
| 26/55 | ||||
| 27/55 | ||||
| 28/55 | ||||
| 29/55 | ||||
| 30/55 | ||||
| 31/55 | ||||
| 32/55 | A-b | |||
| 33/55 | ||||
| 34/55 | ||||
| 35/55 | ||||
| 36/55 | ||||
| 37/55 | ||||
| 38/55 | ||||
| 39/55 | ||||
| 40/55 | ||||
| 41/55 | ||||
| 42/55 | ||||
| 43/55 | ||||
| 44/55 | ||||
| 45/55 | ||||
| 46/55 | ||||
| 47/55 | ||||
| 48/55 | A-b | |||
| 49/55 | ||||
| 50/55 | ||||
| 51/55 | ||||
| 52/55 | ||||
| 53/55 | ||||
| 54/55 | ||||
| 55/55 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 4 reviewers.
Cover letter [PATCH tip/core/rcu 0/55] Preview of RCU changes for 3.2
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).
For a testing-only version of this patchset from git, please see the following subject-to-rebase (and subject-to-Hera-availability) branch:
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu.git rcu/testing
Thanx, Paul
------------------------------------------------------------------------
Documentation/RCU/NMI-RCU.txt | 4 Documentation/RCU/lockdep.txt | 24 + Documentation/RCU/torture.txt | 3 Documentation/RCU/trace.txt | 34 +- b/Documentation/RCU/NMI-RCU.txt | 2 b/Documentation/RCU/lockdep-splat.txt | 110 +++++++ b/Documentation/RCU/lockdep.txt | 10 b/Documentation/RCU/torture.txt | 134 +++++++-- b/Documentation/RCU/trace.txt | 4 b/arch/powerpc/include/asm/synch.h | 6 b/arch/powerpc/platforms/pseries/lpar.c | 6 b/include/linux/lockdep.h | 2 b/include/linux/rcupdate.h | 28 + b/include/linux/rcutiny.h | 16 + b/include/linux/rcutree.h | 2 b/include/linux/sched.h | 1 b/include/linux/srcu.h | 25 + b/include/linux/types.h | 10 b/include/trace/events/rcu.h | 98 ++++++ b/init/Kconfig | 6 b/kernel/lockdep.c | 84 +++-- b/kernel/pid.c | 4 b/kernel/rcu.h | 79 +++++ b/kernel/rcupdate.c | 21 + b/kernel/rcutiny.c | 28 - b/kernel/rcutiny_plugin.h | 14 b/kernel/rcutorture.c | 5 b/kernel/rcutree.c | 22 - b/kernel/rcutree.h | 7 b/kernel/rcutree_plugin.h | 5 b/kernel/rcutree_trace.c | 2 b/kernel/rtmutex.c | 8 b/kernel/sched.c | 2 b/kernel/time/tick-sched.c | 6 include/linux/rcupdate.h | 420 ++++++++++++++--------------- include/linux/rcutiny.h | 4 include/linux/sched.h | 3 include/linux/srcu.h | 5 include/trace/events/rcu.h | 449 ++++++++++++++++++++++++++++---- kernel/lockdep.c | 20 + kernel/rcu.h | 16 - kernel/rcupdate.c | 22 + kernel/rcutiny.c | 139 +++------ kernel/rcutiny_plugin.h | 120 ++++++-- kernel/rcutorture.c | 72 ++--- kernel/rcutree.c | 313 +++++++++++++++------- kernel/rcutree.h | 10 kernel/rcutree_plugin.h | 150 +++++----- kernel/rcutree_trace.c | 13 kernel/sched.c | 11 50 files changed, 1761 insertions(+), 818 deletions(-)