RFC RCU commits for 3.4
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest41 patches 62 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/41 | rcu: Bring RTFP.txt up to date.Documentation/ | +1758 | 6 replies | |
| 2/41 | rcu: Improve synchronize_rcu() diagnosticsinclude/ | +1 | 0 replies | |
| 3/41 | rcu: Add lockdep-RCU checks for simple self-deadlockkernel/ kernel/ kernel/ +2 more | +20 | 6 replies | |
| 4/41 | rcu: Add diagnostic for misaligned rcu_head structureskernel/ | +1 | 5 replies | |
| 5/41 | rcu: Avoid waking up CPUs having only kfree_rcu() callbacksinclude/ include/ include/ +7 more | +153 | 2 replies | |
| 6/41 | rcu: Move RCU_TRACE to lib/Kconfig.debuginit/ lib/ | +9 | 2 replies | |
| 7/41 | s390: Convert call_rcu() to kfree_rcu()arch/ | +1 | 0 replies | |
| 8/41 | tcm_fc: Convert call_rcu() to kfree_rcu()drivers/ | +1 | 0 replies | |
| 9/41 | ipv4: Convert call_rcu() to kfree_rcu()net/ | +3 | 1 reply | |
| 10/41 | ipv4: Convert call_rcu() to kfree_rcu()net/ | +1 | 3 replies | |
| 11/41 | mac80211: Convert call_rcu() to kfree_rcu()net/ | +1 | 0 replies | |
| 12/41 | rcu: Simplify offline processingkernel/ kernel/ kernel/ | +90 | 0 replies | |
| 13/41 | rcu: Make rcutorture flag online/offline failureskernel/ | +4 | 2 replies | |
| 14/41 | rcu: Limit lazy-callback durationkernel/ | +11 | 4 replies | |
| 15/41 | rcu: Check for callback invocation from offline CPUskernel/ | +1 | 0 replies | |
| 16/41 | rcu: Don't make callbacks go through second full grace periodkernel/ | +46 | 0 replies | |
| 17/41 | rcu: Remove single-rcu_node optimization in rcu_start_gp()kernel/ | +0 | 2 replies | |
| 18/41 | rcu: Protect __rcu_read_unlock() against scheduler-using irq handlerskernel/ | +35 | 0 replies | |
| 19/41 | rcu: Streamline code produced by __rcu_read_unlock()kernel/ | +1 | 0 replies | |
| 20/41 | rcu: Prevent RCU callbacks from executing before scheduler initializedinclude/ kernel/ | +12 | 0 replies | |
| 21/41 | rcu: Inform RCU of irq_exit() activitykernel/ | +1 | 2 replies | |
| 22/41 | rcu: Simplify unboosting checksinclude/ kernel/ | +7 | 3 replies | |
| 23/41 | rcu: Clean up straggling rcu_preempt_needs_cpu() namekernel/ kernel/ kernel/ | +6 | 0 replies | |
| 24/41 | rcu: Check for idle-loop entry while in RCU read-side critical sectionkernel/ | +14 | 2 replies | |
| 25/41 | rcu: Make rcu_sleep_check() also check rcu_lock_mapinclude/ | +14 | 0 replies | |
| 26/41 | rcu: Note that rcu_access_pointer() can be used for teardowninclude/ | +7 | 0 replies | |
| 27/41 | rcu: Remove #ifdef CONFIG_SMP from TREE_RCUkernel/ kernel/ | +0 | 0 replies | |
| 28/41 | rcu: Set RCU CPU stall times via sysfskernel/ kernel/ | +26 | 0 replies | |
| 29/41 | rcu: Print scheduling-clock information on RCU CPU stall-warning messageskernel/ kernel/ kernel/ +1 more | +194 | 0 replies | |
| 30/41 | rcutorture: Permit holding off CPU-hotplug operations during bootDocumentation/ kernel/ | +22 | 2 replies | |
| 31/41 | rcu: Add CPU-stall capability to rcutortureDocumentation/ kernel/ | +81 | 4 replies | |
| 32/41 | rcu: Update stall-warning documentationDocumentation/ | +79 | 4 replies | |
| 33/41 | rcu: Make boolean rcutorture parameters be of type "bool"kernel/ | +2 | 0 replies | |
| 34/41 | rcu: Check for illegal use of RCU from offlined CPUsinclude/ include/ kernel/ +2 more | +61 | 0 replies | |
| 35/41 | rcu: Move synchronize_sched_expedited() to rcutree.ckernel/ kernel/ | +117 | 0 replies | |
| 36/41 | rcu: No interrupt disabling for rcu_prepare_for_idle()kernel/ | +1 | 0 replies | |
| 37/41 | lockdep: Add CPU-idle/offline warning to lockdep-RCU splatkernel/ | +7 | 3 replies | |
| 38/41 | rcu: Rework detection of use of RCU by offline CPUskernel/ kernel/ | +61 | 3 replies | |
| 39/41 | rcu: Wait at least a jiffy before declaring a CPU to be offlineDocumentation/ kernel/ kernel/ +1 more | +26 | 2 replies | |
| 40/41 | rcu: Call out dangers of expedited RCU primitivesDocumentation/ include/ kernel/ +2 more | +77 | 0 replies | |
| 41/41 | rcu: Trace only after NULL-pointer checkkernel/ | +2 | 0 replies |
Reviews trailers per patch
4 of 41 patches have a Reviewed-by or Acked-by.
| Patch | David Howells | David S. Miller | Josh Triplett |
|---|---|---|---|
| 1/41 | |||
| 2/41 | |||
| 3/41 | |||
| 4/41 | |||
| 5/41 | |||
| 6/41 | |||
| 7/41 | |||
| 8/41 | |||
| 9/41 | A-b | ||
| 10/41 | A-b | ||
| 11/41 | |||
| 12/41 | |||
| 13/41 | |||
| 14/41 | |||
| 15/41 | |||
| 16/41 | |||
| 17/41 | R-b | ||
| 18/41 | |||
| 19/41 | |||
| 20/41 | |||
| 21/41 | |||
| 22/41 | |||
| 23/41 | |||
| 24/41 | |||
| 25/41 | |||
| 26/41 | A-b | ||
| 27/41 | |||
| 28/41 | |||
| 29/41 | |||
| 30/41 | |||
| 31/41 | |||
| 32/41 | |||
| 33/41 | |||
| 34/41 | |||
| 35/41 | |||
| 36/41 | |||
| 37/41 | |||
| 38/41 | |||
| 39/41 | |||
| 40/41 | |||
| 41/41 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.
Cover letter [PATCH RFC 0/41] RCU commits for 3.4
Hello!
This patchset makes RCU more aggressive about entering dyntick-idle mode in order to improve energy efficiency, converts a few more call_rcu()s to kfree_rcu(), applies a number of rcutree fixes and cleanups to rcutiny, removes CONFIG_SMP #ifdef from treercu, allows RCU CPU stall times to be set via sysfs, add CPU-stall capability to rcutorture, adds more RCU-abuse diagnostics, updates documentation, and yet more fixes from the still-ongoing top-to-bottom inspection of RCU with a special focus on the CPU-hotplug code path. The patches are as follows:
1,26,41,40.
Documentation upgrades.
2. Improve synchronize_rcu() diagnostics, courtesy of
Frederic Weisbecker.
3. Add lockdep-RCU checks for simple self deadlock, such as calling
synchronize_rcu() while in an RCU read-side critical section.
4. Add a diagnostic for misaligned rcu_head structures. This is
preparation for a call_rcu_lazy() for added energy efficiency.
5,14,36.
Upgrades to CONFIG_RCU_FAST_NO_HZ.
6. Move CONFIG_RCU_TRACE to lib/Kconfig.debug: not for production use.
7-11. Convert several call_rcu() primitives to kfree_rcu().
12,13,15,16,37-39.
Fixes to and streamlining of CPU-hotplug handling based on review.
17. Remove dubious single-rcu_node optimization from rcu_start_gp().
18-22. Apply prior rcutree fixes to rcutiny.
23. Catch rcu_preempt_needs_cpu()'s name up with 2011.
24. Check for idle-loop entry while in an RCU read-side critical section.
25. Check for sleeping in TREE_RCU read-side critical sections.
27,35. Remove "#ifdef CONFIG_SMP" from treercu, move code accordingly.
28. Allow RCU CPU stall times to be adjusted at runtime via sysfs.
29. Print scheduling-clock timer information on RCU CPU stall warning
messages if requested by CONFIG_RCU_CPU_STALL_INFO config parameter.
30. Allow rcutorture to be told to hold off CPU-hotplug operations during
early boot.
31. Allow rcutorture to generate CPU stalls in order to test RCU CPU
stall warning facility.
33. Silence module-parameter warnings by converting a couple of
rcutorture's module parameters to bool.
34. Check for illegal use of RCU from offlined CPUs.
41. Fix misplaced NULL-pointer check in rcutorture.
For a testing-only version of this patchset from git, please see the following subject-to-rebase branch:
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/dev
Thanx, Paul
------------------------------------------------------------------------
Documentation/RCU/torture.txt | 18 b/Documentation/RCU/RTFP.txt | 1910 ++++++++++++++++++++++++++++++++++--- b/Documentation/RCU/checklist.txt | 14 b/Documentation/RCU/stallwarn.txt | 85 + b/Documentation/RCU/torture.txt | 15 b/Documentation/RCU/trace.txt | 36 b/arch/s390/kernel/irq.c | 9 b/drivers/target/tcm_fc/tfc_sess.c | 12 b/include/linux/rcupdate.h | 2 b/include/linux/rcutiny.h | 6 b/include/linux/rcutree.h | 1 b/include/linux/sched.h | 3 b/include/linux/srcu.h | 11 b/include/trace/events/rcu.h | 63 - b/init/Kconfig | 9 b/kernel/lockdep.c | 8 b/kernel/rcu.h | 4 b/kernel/rcupdate.c | 5 b/kernel/rcutiny.c | 3 b/kernel/rcutiny_plugin.h | 4 b/kernel/rcutorture.c | 4 b/kernel/rcutree.c | 6 b/kernel/rcutree.h | 3 b/kernel/rcutree_plugin.h | 3 b/kernel/rcutree_trace.c | 8 b/kernel/srcu.c | 4 b/lib/Kconfig.debug | 9 b/net/ipv4/cipso_ipv4.c | 11 b/net/ipv4/ip_sockglue.c | 7 b/net/mac80211/mesh_pathtbl.c | 8 include/linux/rcupdate.h | 40 include/linux/rcutiny.h | 4 include/linux/rcutree.h | 18 kernel/rcutiny.c | 4 kernel/rcutiny_plugin.h | 72 + kernel/rcutorture.c | 83 + kernel/rcutree.c | 641 ++++++++---- kernel/rcutree.h | 24 kernel/rcutree_plugin.h | 443 +++++--- kernel/rcutree_trace.c | 6 kernel/srcu.c | 27 lib/Kconfig.debug | 14 42 files changed, 2954 insertions(+), 703 deletions(-)