Skip to content

Preview of yet more RCU changes for 3.3

Paul E. McKenney lkml 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest12 of 13 patches 0 repliesNew

12 of 13 patches are in this archive. The cover letter announces 13.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13rcu: Add rcutorture CPU-hotplug capabilityDocumentation/RCU/torture.txt kernel/rcutorture.c+120 -50 replies
2/13nohz: Remove tick_nohz_idle_enter_norcu() / tick_nohz_idle_exit_norcu()arch/arm/kernel/process.c arch/avr32/kernel/process.c arch/blackfin/kernel/process.c +14 more+76 -910 replies
4/13rcu: Update trace_rcu_dyntick() header commentinclude/trace/events/rcu.h+10 -20 replies
5/13rcu: Add tracing for RCU_FAST_NO_HZinclude/trace/events/rcu.h kernel/rcutree_plugin.h+52 -30 replies
6/13rcu: Go dyntick-idle more quickly if CPU has serviced current grace periodkernel/rcutree_plugin.h+18 -60 replies
7/13rcu: Avoid needlessly IPIing CPUs at GP endkernel/rcutree_plugin.h+14 -20 replies
8/13rcu: Eliminate RCU_FAST_NO_HZ grace-period hanginclude/trace/events/rcu.h kernel/rcutree.c kernel/rcutree.h +1 more+2 -820 replies
9/13rcu: Reduce latency of rcu_prepare_for_idle()kernel/rcutree_plugin.h+7 -50 replies
10/13rcu: Remove dynticks false positives and RCU failureskernel/rcutree.c+3 -20 replies
11/13rcu: Identify dyntick-idle CPUs on first force_quiescent_state() passkernel/rcutree.c+1 -10 replies
12/13rcu: Document same-context read-side constraintsinclude/linux/rcupdate.h include/linux/srcu.h+20 -00 replies
13/13rcu: Permit dyntick-idle with callbacks pendinginclude/trace/events/rcu.h kernel/rcutree.c kernel/rcutree.h +1 more+78 -50 replies

Reviews trailers per patch

1 of 12 patches has a Reviewed-by or Acked-by.

PatchJosh Triplett
1/13
2/13R-b
4/13
5/13
6/13
7/13
8/13
9/13
10/13
11/13
12/13
13/13

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH tip/core/rcu 0/13] Preview of yet more RCU changes for 3.3

Hello!

This patchset adds to the pair that were previously posted earlier this month (see https://lkml.org/lkml/2011/11/2/363
and https://lkml.org/lkml/2011/11/15/302). This third set adds more rcutorture capabilities to ease automated testing under KVM (randomized CPU hotplug operations), updates Frederic's user-mode nohz RCU infrastructure, adds tracing for RCU_FAST_NO_HZ, makes a number of improvements to RCU_FAST_NO_HZ suggested by the resulting traces, speeds up TREE_RCU's dyntick-idle identification, and provides documentation updates. The patches are as follows:

1. Add randomized CPU-hotplug capability to rcutorture.
2. Decouple turning off the scheduler tick and informing RCU
of CPU idleness (courtesy of Frederic Weisbecker).
3,4,12. Documentation updates, with the addition of load/store atomicity
guarantees (#3) being of the most widespread interest.
5. Add event tracing for RCU_FAST_NO_HZ.
6,7,8,9,10,11,13.
RCU_FAST_NO_HZ improvements suggested by event-tracing output.

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

------------------------------------------------------------------------

 b/Documentation/RCU/torture.txt          |    8 +
 b/Documentation/atomic_ops.txt           |   87 +++++++++++++
 b/arch/arm/kernel/process.c              |    6 
 b/arch/avr32/kernel/process.c            |    6 
 b/arch/blackfin/kernel/process.c         |    6 
 b/arch/microblaze/kernel/process.c       |    6 
 b/arch/mips/kernel/process.c             |    6 
 b/arch/openrisc/kernel/idle.c            |    6 
 b/arch/powerpc/kernel/idle.c             |   15 +-
 b/arch/powerpc/platforms/iseries/setup.c |   12 +
 b/arch/s390/kernel/process.c             |    6 
 b/arch/sh/kernel/idle.c                  |    6 
 b/arch/sparc/kernel/process_64.c         |    6 
 b/arch/tile/kernel/process.c             |    6 
 b/arch/um/kernel/process.c               |    6 
 b/arch/unicore32/kernel/process.c        |    6 
 b/arch/x86/kernel/process_32.c           |    6 
 b/include/linux/rcupdate.h               |   15 ++
 b/include/linux/srcu.h                   |    5 
 b/include/linux/tick.h                   |   47 -------
 b/include/trace/events/rcu.h             |   12 +
 b/kernel/rcutorture.c                    |  117 ++++++++++++++++-
 b/kernel/rcutree.c                       |    2 
 b/kernel/rcutree.h                       |    3 
 b/kernel/rcutree_plugin.h                |   18 ++
 b/kernel/time/tick-sched.c               |   15 +-
 include/trace/events/rcu.h               |   41 +++++-
 kernel/rcutree.c                         |   10 +
 kernel/rcutree.h                         |    2 
 kernel/rcutree_plugin.h                  |  205 ++++++++++++++++---------------
 30 files changed, 488 insertions(+), 204 deletions(-)