Re: [GIT PULL rcu/next] RCU commits for 3.6

From: Ingo Molnar
Date: Fri Jul 06 2012 - 10:17:47 EST



* Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:

> Hello, Ingo,
>
> The major features of this series are:
>
> 1. Preventing latency spikes of more than 200 microseconds for
> kernels built with NR_CPUS=4096, which is reportedly becoming
> the default for some distros. This is a first step, as it does
> not help with systems that actually -have- 4096 CPUs (work on
> this case is in progress, but is not yet ready for mainline).
> This category also includes improving concurrency of rcu_barrier(),
> placed here due to conflicts. Posted to LKML at:
> https://lkml.org/lkml/2012/6/22/381. Note that patches 18-22
> of that series have been defered to 3.7, as they have not yet
> proven themselves to be mainline-ready (and yes, these are the
> ones intended to get rid of RCU's latency spikes for systems
> that actually have 4096 CPUs).
> 2. Updates to documentation and rcutorture fixes, the latter category
> including improvements to rcu_barrier() testing. Posted to LKML at:
> http://lkml.indiana.edu/hypermail/linux/kernel/1206.1/04094.html.
> 3. Miscellaneous fixes posted to LKML at:
> https://lkml.org/lkml/2012/6/22/500, with the exception of the
> last commit, which was posted here:
> http://www.gossamer-threads.com/lists/linux/kernel/1561830
> 4. RCU_FAST_NO_HZ fixes and improvements. Posted to LKML at:
> http://lkml.indiana.edu/hypermail/linux/kernel/1206.1/00006.html
> and http://www.gossamer-threads.com/lists/linux/kernel/1561833.
> The first four patches of the first series went into 3.5 to fix
> a regression.
> 5. Code-style fixes. These were posted to LKML at
> http://lkml.indiana.edu/hypermail/linux/kernel/1205.2/01180.html and
> http://lkml.indiana.edu/hypermail/linux/kernel/1205.2/01181.html.
>
> All of this code has been exposed to -next testing.
>
> 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
>
> -------------------->
> Carsten Emde (1):
> rcu: Prevent uninitialized string in RCU CPU stall info
>
> Paul E. McKenney (48):
> rcu: Control RCU_FANOUT_LEAF from boot-time parameter
> rcu: Four-level hierarchy is no longer experimental
> rcu: Size rcu_node tree from nr_cpu_ids rather than NR_CPUS
> rcu: Prevent excessive line length in RCU_STATE_INITIALIZER()
> rcu: Place pointer to call_rcu() in rcu_data structure
> rcu: Move _rcu_barrier()'s rcu_head structures to rcu_data structures
> rcu: Move rcu_barrier_cpu_count to rcu_state structure
> rcu: Move rcu_barrier_completion to rcu_state structure
> rcu: Move rcu_barrier_mutex to rcu_state structure
> rcu: Remove needless initialization
> rcu: Increase rcu_barrier() concurrency
> rcu: Add tracing for _rcu_barrier()
> rcu: Add rcu_barrier() statistics to debugfs tracing
> rcu: Remove unneeded __rcu_process_callbacks() argument
> rcu: Introduce for_each_rcu_flavor() and use it
> rcu: Use for_each_rcu_flavor() in TREE_RCU tracing
> rcu: RCU_SAVE_DYNTICK code no longer ever dead
> rcu: Update documentation to cover call_srcu() and srcu_barrier().
> rcu: Rationalize ordering of torture_ops list
> rcu: Test srcu_barrier() from rcutorture test suite
> rcu: Fix bug in rcu_barrier() torture test
> rcu: Fix diagnostic-printk typo in rcutorture
> rcu: Make rcutorture fakewriters invoke rcu_barrier()
> rcu: Fix detection of abruptly-ending stall
> rcu: Consolidate duplicate callback-list initialization
> rcu: Add ACCESS_ONCE() to ->qlen accesses
> rcu: Add a gcc-style structure initializer for RCU pointers
> rcu: Use new RCU_POINTER_INITIALIZER for gcc-style initializations
> rcu: Remove return value from RCU_INIT_POINTER()
> key: Remove extraneous parentheses from rcu_assign_keypointer()
> rcu: Remove return value from rcu_assign_pointer()
> rcu: Consolidate tree/tiny __rcu_read_{,un}lock() implementations
> rcu: Remove function versions of __kfree_rcu and __is_kfree_rcu_offset
> rcu: Make __call_rcu() handle invocation from idle
> rcu: Prevent __call_rcu() from invoking RCU core on offline CPUs
> rcu: Split RCU core processing out of __call_rcu()
> rcu: Fix rcu_is_cpu_idle() #ifdef in TINY_RCU
> rcu: Disable preemption in rcu_blocking_is_gp()
> rcu: Add check for CPUs going offline with callbacks queued
> rcu: Dump only the current CPU's buffers for idle-entry/exit warnings
> rcu: The rcu_needs_cpu() function is not a quiescent state
> rcu: Round FAST_NO_HZ lazy timeout to nearest second
> rcu: Fix qlen_lazy breakage
> rcu: Make RCU_FAST_NO_HZ respect nohz= boot parameter
> rcu: Introduce check for callback list/count mismatch
> Merge branches 'bigrtm.2012.07.04a', 'doctorture.2012.07.02a', 'fixes.2012.07.06a' and 'fnh.2012.07.02a' into HEAD
> rcu: Fix code-style issues involving "else"
> rcu: Fix broken strings in RCU's source code.
>
> Documentation/RCU/checklist.txt | 39 ++--
> Documentation/RCU/rcubarrier.txt | 15 +-
> Documentation/RCU/torture.txt | 9 +
> Documentation/RCU/whatisRCU.txt | 6 +-
> Documentation/kernel-parameters.txt | 5 +
> include/linux/init_task.h | 4 +-
> include/linux/key.h | 4 +-
> include/linux/rcupdate.h | 53 ++---
> include/trace/events/rcu.h | 45 ++++
> kernel/rcupdate.c | 44 ++++
> kernel/rcutiny.c | 4 +-
> kernel/rcutiny_plugin.h | 56 +----
> kernel/rcutorture.c | 72 ++++--
> kernel/rcutree.c | 478 ++++++++++++++++++++++------------
> kernel/rcutree.h | 46 ++--
> kernel/rcutree_plugin.h | 223 ++++-------------
> kernel/rcutree_trace.c | 148 ++++++-----
> kernel/time/tick-sched.c | 2 +-
> lib/list_debug.c | 6 +-
> 19 files changed, 669 insertions(+), 590 deletions(-)

Pulled, thanks a lot Paul!

Ingo
--
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/