Skip to content

v2 Fixups for 3.6

Paul E. McKenney lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest17 patches 6 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/17rcu: Fix detection of abruptly-ending stallkernel/rcutree.c+2 -20 replies
2/17rcu: Consolidate duplicate callback-list initializationkernel/rcutree.c+14 -90 replies
3/17rcu: Add ACCESS_ONCE() to ->qlen accesseskernel/rcutree.c+4 -40 replies
4/17rcu: Add a gcc-style structure initializer for RCU pointersinclude/linux/rcupdate.h+8 -01 reply
5/17rcu: Use new RCU_POINTER_INITIALIZER for gcc-style initializationsinclude/linux/init_task.h+2 -21 reply
6/17rcu: Remove return value from RCU_INIT_POINTER()include/linux/rcupdate.h+3 -11 reply
7/17key: Remove extraneous parentheses from rcu_assign_keypointer()include/linux/key.h+1 -13 replies
8/17rcu: Remove return value from rcu_assign_pointer()include/linux/rcupdate.h+3 -30 replies
9/17rcu: Consolidate tree/tiny __rcu_read_{,un}lock() implementationsinclude/linux/rcupdate.h kernel/rcupdate.c kernel/rcutiny_plugin.h +1 more+47 -920 replies
10/17rcu: Remove function versions of __kfree_rcu and __is_kfree_rcu_offsetinclude/linux/rcupdate.h+0 -180 replies
11/17rcu: Make __call_rcu() handle invocation from idleinclude/linux/rcupdate.h kernel/rcutree.c+13 -150 replies
12/17rcu: Prevent __call_rcu() from invoking RCU core on offline CPUskernel/rcutree.c+3 -30 replies
13/17rcu: Split RCU core processing out of __call_rcu()kernel/rcutree.c+49 -410 replies
14/17rcu: Fix rcu_is_cpu_idle() #ifdef in TINY_RCUkernel/rcutiny.c+2 -20 replies
15/17Prevent uninitialized string in RCU stall infokernel/rcutree_plugin.h+1 -00 replies
16/17rcu: Disable preemption in rcu_blocking_is_gp()kernel/rcutree.c+2 -170 replies
17/17rcu: Add check for CPUs going offline with callbacks queuedkernel/rcutree.c+3 -00 replies

Reviews trailers per patch

13 of 17 patches have a Reviewed-by or Acked-by.

PatchJosh TriplettDavid Howells
1/17R-b
2/17R-b
3/17R-b
4/17A-b
5/17A-b
6/17R-b A-b
7/17R-b R-b
8/17R-b
9/17R-b
10/17R-b
11/17R-b
12/17R-b
13/17R-b
14/17
15/17
16/17
17/17

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/17] v2 Fixups for 3.6

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(-)