[lkml]   [2012]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH tip/core/rcu 0/17] v2 Fixups for 3.6

This patch series has general fixups and improvements. This is version 2,
the prior version may be found at:
The individual patches are as follows:

1. Get rid of the false positives from the code that recognizes
a CPU stall that ends just as it is detected.
2. Consolidate open-coded initializations of RCU callback lists.
3. Protect unsynchronized accesses to ->qlen with ACCESS_ONCE()
to document the unsynchronized access and to prevent compiler
4. Add RCU_POINTER_INITIALIZER() for static initialization to allow
do-while formulation of the existing RCU_INIT_POINTER().
5. Convert clever use of RCU_INIT_POINTER() for gcc-style
initialization to RCU_POINTER_INITIALIZER().
6. Wrap RCU_INIT_POINTER() macro in obligatory do-while.
7. Remove extraneous parentheses from rcu_assign_keypointer()
to allow rcu_assign_pointer() to be wrapped in do-while.
8. Wrap rcu_assign_pointer() macro in obligatory do-while.
9. Consolidate the identical CONFIG_TREE_PREEMPT_RCU and
CONFIG_TINY_PREEMPT_RCU versions of __rcu_read_lock() and
10. Remove the old inline-function version of __kfree_rcu() and
11. Make __call_rcu() correctly handle calls from the idle loop.
12. Make __call_rcu() correctly handle calls from a CPU that is
in the process of going offline.
13. Split __call_rcu() into the part that actually deals with
enqueueing the callback and the part that kicks RCU's
grace-period machinery.
14. Make RCU_TINY's rcu_is_cpu_idle() function safe for "make
15. Properly initialize the preemptible-RCU string in kernels built
without CONFIG_RCU_FAST_NO_HZ (courtesy of Carsten Emde).
16. Disable preemption in rcu_blocking_is_gp() to allow future
optimization of preemptible-RCU synchronize_rcu() for single-CPU
17. Add a warning for CPUs going offline with RCU callbacks queued.

Changes since version 1:

o Applied Josh Triplett review comments.
o Added patches 15-17.

Thanx, Paul

b/include/linux/init_task.h | 4 -
b/include/linux/key.h | 2
b/include/linux/rcupdate.h | 8 ++
b/kernel/rcupdate.c | 44 +++++++++++
b/kernel/rcutiny.c | 4 -
b/kernel/rcutiny_plugin.h | 47 ------------
b/kernel/rcutree.c | 4 -
b/kernel/rcutree_plugin.h | 47 ------------
include/linux/rcupdate.h | 42 ++---------
kernel/rcutree.c | 164 ++++++++++++++++++++++----------------------
kernel/rcutree_plugin.h | 1
11 files changed, 157 insertions(+), 210 deletions(-)

 \ /
  Last update: 2012-06-23 02:01    [W:0.137 / U:1.500 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site