Skip to content

Early-boot RCU callbacks for v4.1

Paul E. McKenney lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest7 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7rcu: Abstract default callback-list initialization from init_callback_list()kernel/rcu/tree.c+14 -40 replies
2/7rcu: Wire ->rda pointers at compile timekernel/rcu/tree.c+3 -30 replies
3/7rcu: Prevent early-boot RCU callbacks from splattingkernel/rcu/tree.c+15 -50 replies
4/7rcu: Refine diagnostics for lacking kthread for no-CBs callbackskernel/rcu/tree_plugin.h+2 -10 replies
5/7rcu: Avoid clobbering early boot callbackskernel/rcu/tree.c+2 -10 replies
6/7rcu: Move early-boot callbacks to no-CBs lists for no-CBs CPUskernel/rcu/tree.c kernel/rcu/tree_plugin.h+13 -122 replies
7/7rcu: Move early boot callback tests earlierkernel/rcu/tree.c+2 -20 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH tip/core/rcu 0/7] Early-boot RCU callbacks for v4.1

Hello!

This series allows RCU callbacks to be posted very early at boot time, even before rcu_init() is called.

1. Abstract initialization of the default (non-no-CB) callbacks list
from the init_callback_list() function into a new init_default_callback_list() function.

2. Initialize rcu_state structures' ->rda pointers to per-CPU
rcu_data structures at compile time, so that this linkage is established for early-boot usage.

3. Remove diagnostics that currently splat in the presence of
early-boot RCU callbacks.

4. Update no-CBs diagnostics to allow for early-boot RCU callbacks.

5. Make RCU's CPU-hotplug online code avoid initializing non-empty
RCU callback lists in order to avoid leaking early-boot callbacks.

6. When a given CPU is determined to be a no-CBs CPU, move any
early-boot callbacks to its no-CBs callback list.

7. Move the early-boot callback tests to precede rcu_init()'s
initialization code, the better to test all the above.

Thanx, Paul

------------------------------------------------------------------------

 b/kernel/rcu/tree.c        |   52 ++++++++++++++++++++++++++++++++-------------
 b/kernel/rcu/tree_plugin.h |   27 ++++++++++++-----------
 2 files changed, 51 insertions(+), 28 deletions(-)