RCU commits for 3.8
Hello, Ingo,
The major features of this series are:
1. A first version of no-callbacks CPUs. This version prohibits
offlining CPU 0, but only when enabled via CONFIG_RCU_NOCB_CPU=y. Relaxing this constraint is in progress, but not yet ready for prime time. These commits were posted to LKML at
https://lkml.org/lkml/2012/10/30/724, and are at branch rcu/nocb.
2. Changes to SRCU that allows statically initialized srcu_struct
structures. These commits were posted to LKML at https://lkml.org/lkml/2012/10/30/296, and are at branch rcu/srcu.
3. Restructuring of RCU's debugfs output. These commits were posted
to LKML at https://lkml.org/lkml/2012/10/30/341, and are at branch rcu/tracing.
4. Additional CPU-hotplug/RCU improvements, posted to LKML at
https://lkml.org/lkml/2012/10/30/327, and are at branch rcu/hotplug. Note that the commit eliminating __stop_machine() was judged to be too-high of risk, so is deferred to 3.9.
5. Changes to RCU's idle interface, most notably a new module
parameter that redirects normal grace-period operations to their expedited equivalents. These were posted to LKML at
https://lkml.org/lkml/2012/10/30/739, and are at branch rcu/idle.
6. Additional diagnostics for RCU's CPU stall warning facility,
posted to LKML at https://lkml.org/lkml/2012/10/30/315, and are at branch rcu/stall. The most notable change reduces the default RCU CPU stall-warning time from 60 seconds to 21 seconds, so that it once again happens sooner than the softlockup timeout.
7. Documentation updates, which were posted to LKML at
https://lkml.org/lkml/2012/10/30/280, and are at branch rcu/doc. A couple of late-breaking changes were posted at https://lkml.org/lkml/2012/11/16/634 and https://lkml.org/lkml/2012/11/16/547.
8. Miscellaneous fixes, which were posted to LKML at
https://lkml.org/lkml/2012/10/30/309, along with a late-breaking change posted at Fri, 16 Nov 2012 11:26:25 -0800 with message-ID <[email protected]>, but which lkml.org seems to have missed. These are at branch rcu/fixes.
9. Finally, a fix for an lockdep-RCU splat was posted to LKML
at https://lkml.org/lkml/2012/11/7/486. This is at rcu/next.
All executable code in these commits have been subject to -next testing. (Fixes to trailing whitespace problems in one of the Documentation files has not yet been, but as far as I know -next testing does not do anything with Documentation files -- and testing will happen as soon as -next testing restarts.)
These changes are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/next
Thanx, Paul
------------------>
Antti P Miettinen (1):
rcu: Add a module parameter to force use of expedited RCU primitives
Dhaval Giani (1):
rcu: Correct the name of a reference in list of RCU papers
Eric Dumazet (1):
rcu: Fix batch-limit size problem
Frederic Weisbecker (2):
rcu: Remove rcu_switch()
rcu: Fix unrecovered RCU user mode in syscall_trace_leave()
Kees Cook (1):
rcu: Update docs to include kfree_rcu()
Lai Jiangshan (4):
srcu: Credit Lai Jiangshan with SRCU rewrite
srcu: Export process_srcu()
srcu: Add DEFINE_SRCU()
rcutorture: Use DEFINE_STATIC_SRCU()
Michael Wang (12):
rcu: Create directory for each flavor of rcu
rcu: Fundamental facility for 'CPU units sequence reading'
rcu: Optimize the 'rcudata' for RCU trace
rcu: Optimize the 'rcudata.csv' for RCU trace
rcu: Optimize the 'rcu_pending' for RCU trace
rcu: Replace the old interface with the new one
rcu: Remove the interface "rcudata.csv"
rcu: split 'rcubarrier' to each flavor
rcu: split 'rcuboost' to each flavor
rcu: split 'rcugp' to each flavor
rcu: split 'rcuhier' to each flavor
rcu: Remove old debugfs interfaces and also RCU flavor name
Paul E. McKenney (27):
rcu: Accelerate callbacks for CPU initiating a grace period
Documentation: Fix memory-barriers.txt example
rcu: Fix comment about _rcu_barrier()/orphanage exclusion
rcu: Make rcutorture give diagnostics if CPU offline fails
rcu: Update RCU_FAST_NO_HZ help text
rcu: Fix precedence error in cpu_needs_another_gp()
rcu: Print remote CPU's stacks in stall warnings
rcu: Add grace-period information to RCU CPU stall warnings
rcu: Dump number of callbacks in stall warning messages
rcu: Document alternative RCU/reference-count algorithms
rcu: Rename ->onofflock to ->orphan_lock
rcu: Avoid counter wrap in synchronize_sched_expedited()
rcu: Move synchronize_sched_expedited() state to rcu_state
rcu: Instrument synchronize_rcu_expedited() for debugfs tracing
rcu: Fix tracing formatting
rcu: Add tracing for synchronize_sched_expedited()
rcu: Remove list_for_each_continue_rcu()
rcu: Add new rcutorture module parameters to start/end test messages
rcu: Clarify memory-ordering properties of grace-period primitives
rcu: Fix TINY_RCU rcu_is_cpu_rrupt_from_idle check
rcu: Reduce default RCU CPU stall warning timeout
rcu: Update documentation for TREE_RCU debugfs tracing
rcu: Add documentation for the new rcuexp debugfs trace file
Merge branches 'urgent.2012.10.27a', 'doc.2012.11.16a', 'fixes.2012.11.13a', 'srcu.2012.10.27a', 'stall.2012.11.13a', 'tracing.2012.11.08a' and 'idle.2012.10.24a' into HEAD
rcu: Add callback-free CPUs
rcu: Separate accounting of callbacks from callback-free CPUs
sched: Mark RCU reader in sched_show_task()
Paul Gortmaker (1):
rcu: Wordsmith help text for RCU_USER_QS kernel parameter
Documentation/RCU/RTFP.txt | 2 +- Documentation/RCU/checklist.txt | 17 +- Documentation/RCU/listRCU.txt | 2 +- Documentation/RCU/rcuref.txt | 61 +++++- Documentation/RCU/trace.txt | 396 ++++++++++++++++++--------------- Documentation/RCU/whatisRCU.txt | 17 +- Documentation/kernel-parameters.txt | 21 ++ Documentation/memory-barriers.txt | 9 +- arch/um/drivers/mconsole_kern.c | 2 +- arch/x86/kernel/ptrace.c | 7 + include/linux/rculist.h | 17 -- include/linux/rcupdate.h | 27 +++ include/linux/sched.h | 10 +- include/linux/srcu.h | 34 +++ include/trace/events/rcu.h | 1 + init/Kconfig | 41 +++- kernel/ksysfs.c | 18 ++ kernel/rcu.h | 2 + kernel/rcupdate.c | 3 + kernel/rcutiny.c | 2 +- kernel/rcutiny_plugin.h | 5 +- kernel/rcutorture.c | 54 ++--- kernel/rcutree.c | 283 ++++++++++++++++++------ kernel/rcutree.h | 67 ++++++- kernel/rcutree_plugin.h | 415 ++++++++++++++++++++++++++++++++++- kernel/rcutree_trace.c | 330 ++++++++++++++-------------- kernel/sched/core.c | 14 +- kernel/srcu.c | 16 +- lib/Kconfig.debug | 2 +- 29 files changed, 1352 insertions(+), 523 deletions(-)
Quoted 151 lines · Paul E. McKenney
Hello, Ingo,
The major features of this series are:
1. A first version of no-callbacks CPUs. This version prohibits
offlining CPU 0, but only when enabled viaCONFIG_RCU_NOCB_CPU=y. Relaxing this constraint is in progress, but not yet ready for prime time. These commits were posted to LKML at
https://lkml.org/lkml/2012/10/30/724, and are at branch rcu/nocb.2. Changes to SRCU that allows statically initialized
srcu_structstructures. These commits were posted to LKML at https://lkml.org/lkml/2012/10/30/296, and are at branch rcu/srcu.3. Restructuring of RCU's debugfs output. These commits were posted
to LKML at https://lkml.org/lkml/2012/10/30/341, and are at branch rcu/tracing.4. Additional CPU-hotplug/RCU improvements, posted to LKML at
https://lkml.org/lkml/2012/10/30/327, and are at branch rcu/hotplug. Note that the commit eliminating__stop_machine()was judged to be too-high of risk, so is deferred to 3.9.5. Changes to RCU's idle interface, most notably a new module
parameter that redirects normal grace-period operations to their expedited equivalents. These were posted to LKML at
https://lkml.org/lkml/2012/10/30/739, and are at branch rcu/idle.6. Additional diagnostics for RCU's CPU stall warning facility,
posted to LKML at https://lkml.org/lkml/2012/10/30/315, and are at branch rcu/stall. The most notable change reduces the default RCU CPU stall-warning time from 60 seconds to 21 seconds, so that it once again happens sooner than the softlockup timeout.7. Documentation updates, which were posted to LKML at
https://lkml.org/lkml/2012/10/30/280, and are at branch rcu/doc. A couple of late-breaking changes were posted at https://lkml.org/lkml/2012/11/16/634 and https://lkml.org/lkml/2012/11/16/547.8. Miscellaneous fixes, which were posted to LKML at
https://lkml.org/lkml/2012/10/30/309, along with a late-breaking change posted at Fri, 16 Nov 2012 11:26:25 -0800 with message-ID <[email protected]>, but which lkml.org seems to have missed. These are at branch rcu/fixes.9. Finally, a fix for an lockdep-RCU splat was posted to LKML
at https://lkml.org/lkml/2012/11/7/486. This is at rcu/next.All executable code in these commits have been subject to -next testing. (Fixes to trailing whitespace problems in one of the Documentation files has not yet been, but as far as I know -next testing does not do anything with Documentation files -- and testing will happen as soon as -next testing restarts.)
These changes are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.gitrcu/nextThanx, Paul
------------------>
Antti P Miettinen (1):
rcu: Add a module parameter to force use of expedited RCU primitivesDhaval Giani (1):
rcu: Correct the name of a reference in list of RCU papersEric Dumazet (1):
rcu: Fix batch-limit size problemFrederic Weisbecker (2):
rcu: Removercu_switch()
rcu: Fix unrecovered RCU user mode insyscall_trace_leave()Kees Cook (1):
rcu: Update docs to includekfree_rcu()Lai Jiangshan (4):
srcu: Credit Lai Jiangshan with SRCU rewrite
srcu: Exportprocess_srcu()
srcu: AddDEFINE_SRCU()
rcutorture: UseDEFINE_STATIC_SRCU()Michael Wang (12):
rcu: Create directory for each flavor of rcu
rcu: Fundamental facility for 'CPU units sequence reading'
rcu: Optimize the 'rcudata' for RCU trace
rcu: Optimize the 'rcudata.csv' for RCU trace
rcu: Optimize the 'rcu_pending' for RCU trace
rcu: Replace the old interface with the new one
rcu: Remove the interface "rcudata.csv"
rcu: split 'rcubarrier' to each flavor
rcu: split 'rcuboost' to each flavor
rcu: split 'rcugp' to each flavor
rcu: split 'rcuhier' to each flavor
rcu: Remove old debugfs interfaces and also RCU flavor namePaul E. McKenney (27):
rcu: Accelerate callbacks for CPU initiating a grace period
Documentation: Fix memory-barriers.txt example
rcu: Fix comment about _rcu_barrier()/orphanage exclusion
rcu: Make rcutorture give diagnostics if CPU offline fails
rcu: UpdateRCU_FAST_NO_HZhelp text
rcu: Fix precedence error incpu_needs_another_gp()
rcu: Print remote CPU's stacks in stall warnings
rcu: Add grace-period information to RCU CPU stall warnings
rcu: Dump number of callbacks in stall warning messages
rcu: Document alternative RCU/reference-count algorithms
rcu: Rename ->onofflock to ->orphan_lock
rcu: Avoid counter wrap insynchronize_sched_expedited()
rcu: Movesynchronize_sched_expedited()state torcu_state
rcu: Instrumentsynchronize_rcu_expedited()for debugfs tracing
rcu: Fix tracing formatting
rcu: Add tracing forsynchronize_sched_expedited()
rcu: Removelist_for_each_continue_rcu()
rcu: Add new rcutorture module parameters to start/end test messages
rcu: Clarify memory-ordering properties of grace-period primitives
rcu: FixTINY_RCUrcu_is_cpu_rrupt_from_idlecheck
rcu: Reduce default RCU CPU stall warning timeout
rcu: Update documentation forTREE_RCUdebugfs tracing
rcu: Add documentation for the new rcuexp debugfs trace file
Merge branches 'urgent.2012.10.27a', 'doc.2012.11.16a', 'fixes.2012.11.13a', 'srcu.2012.10.27a', 'stall.2012.11.13a', 'tracing.2012.11.08a' and 'idle.2012.10.24a' into HEAD
rcu: Add callback-free CPUs
rcu: Separate accounting of callbacks from callback-free CPUs
sched: Mark RCU reader insched_show_task()Paul Gortmaker (1):
rcu: Wordsmith help text forRCU_USER_QSkernel parameterDocumentation/RCU/RTFP.txt | 2 +- Documentation/RCU/checklist.txt | 17 +- Documentation/RCU/listRCU.txt | 2 +- Documentation/RCU/rcuref.txt | 61 +++++- Documentation/RCU/trace.txt | 396 ++++++++++++++++++--------------- Documentation/RCU/whatisRCU.txt | 17 +- Documentation/kernel-parameters.txt | 21 ++ Documentation/memory-barriers.txt | 9 +- arch/um/drivers/mconsole_kern.c | 2 +- arch/x86/kernel/ptrace.c | 7 + include/linux/rculist.h | 17 -- include/linux/rcupdate.h | 27 +++ include/linux/sched.h | 10 +- include/linux/srcu.h | 34 +++ include/trace/events/rcu.h | 1 + init/Kconfig | 41 +++- kernel/ksysfs.c | 18 ++ kernel/rcu.h | 2 + kernel/rcupdate.c | 3 + kernel/rcutiny.c | 2 +- kernel/rcutiny_plugin.h | 5 +- kernel/rcutorture.c | 54 ++---
Quoted 8 lines
kernel/rcutree.c | 283 ++++++++++++++++++------ kernel/rcutree.h | 67 ++++++- kernel/rcutree_plugin.h | 415 ++++++++++++++++++++++++++++++++++- kernel/rcutree_trace.c | 330 ++++++++++++++-------------- kernel/sched/core.c | 14 +- kernel/srcu.c | 16 +- lib/Kconfig.debug | 2 +- 29 files changed, 1352 insertions(+), 523 deletions(-)
Pulled into tip:core/rcu, thanks a lot Paul!
There was a minor conflict in arch/x86/kernel/ptrace.c that I've resolved.
Thanks,
Ingo