[PATCH tip/core/rcu 0/17] v2 Fixups for 3.6

From: Paul E. McKenney
Date: Fri Jun 22 2012 - 11:36:42 EST


Hello!

This patch series has general fixups and improvements. This is version 2,
the prior version may be found at: https://lkml.org/lkml/2012/6/15/388.
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
mischief.
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
__rcu_read_unlock().
10. Remove the old inline-function version of __kfree_rcu() and
__is_kfree_rcu_offset().
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
randconfig".
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
systems.
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(-)

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