Skip to content

NOCBs and NO_HZ_FULL changes for 3.18

Paul E. McKenney lkml 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest14 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/14rcu: Fix attempt to avoid unsolicited offloading of callbacksinclude/linux/rcupdate.h init/Kconfig init/main.c +1 more+72 -330 replies
2/14rcu: Check the return value of zalloc_cpumask_var()kernel/rcu/tree_plugin.h+4 -10 replies
3/14rcu: Use true/false for return in __call_rcu_nocb()kernel/rcu/tree_plugin.h+2 -20 replies
4/14rcu: Use true/false for return in rcu_nocb_adopt_orphan_cbs()kernel/rcu/tree_plugin.h+2 -20 replies
5/14rcu: Use false for return in __call_rcu_nocb()kernel/rcu/tree_plugin.h+1 -10 replies
6/14rcu: Return false instead of 0 in rcu_nocb_adopt_orphan_cbs()kernel/rcu/tree_plugin.h+1 -10 replies
7/14rcu: Rationalize kthread spawningkernel/rcu/tree.c kernel/rcu/tree.h kernel/rcu/tree_plugin.h+7 -100 replies
8/14rcu: Create rcuo kthreads only for onlined CPUskernel/rcu/tree.c kernel/rcu/tree.h kernel/rcu/tree_plugin.h+86 -130 replies
9/14rcu: Check for have_rcu_nocb_mask instead of rcu_nocb_maskkernel/rcu/tree_plugin.h+3 -30 replies
10/14rcu: Eliminate redundant rcu_sysidle_state variablekernel/rcu/tree_plugin.h+6 -170 replies
11/14rcu: Don't track sysidle state if no nohz_full= CPUskernel/rcu/tree_plugin.h+18 -10 replies
12/14rcu: Avoid misordering in __call_rcu_nocb_enqueue()kernel/rcu/tree_plugin.h+2 -10 replies
13/14rcu: Handle NOCB callbacks from irq-disabled idle codekernel/rcu/tree_plugin.h+11 -00 replies
14/14rcu: Avoid misordering in nocb_leader_wait()kernel/rcu/tree_plugin.h+1 -00 replies

Reviews trailers per patch

5 of 14 patches have a Reviewed-by or Acked-by.

PatchPranith KumarJosh TriplettFrederic Weisbecker
1/14R-b
2/14
3/14
4/14
5/14
6/14
7/14R-b
8/14R-b
9/14
10/14R-b A-b
11/14A-b
12/14
13/14
14/14

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v1 thread

Cover letter [PATCH tip/core/rcu 0/14] NOCBs and NO_HZ_FULL changes for 3.18

Hello!

This series includes changes affecting NOCBs and NO_HZ_FULL operation.

1. Fix for bug in earlier patch (b58cc46c5f6b, Don't offload
callbacks unless specifically requested) that properly handles early-boot callbacks. (This bug affects unusual configurations, see commit log for more information.)

2. Properly check the return value of zalloc_cpumask_var(), courtesy
of Pranith Kumar.

3. Use bool constant for __call_rcu_nocb() return value, courtesy
of Pranith Kumar.

4. Use bool constant for rcu_nocb_adopt_orphan_cbs() return value,
courtesy of Pranith Kumar.

5. Use bool constant for __call_rcu_nocb() return value in the case
where callbacks are not offloaded, courtesy of Pranith Kumar.

6. Use bool constant for rcu_nocb_adopt_orphan_cbs() return value in
the case where callbacks are not offloaded, courtesy of Pranith Kumar.

7. Aggregate RCU's kthread creation so that it is all done from a
single early_initcall() function.

8. Create rcuo kthreads only for CPUs that actually have come online
at least once since boot.

9. Check have_rcu_nocb_mask instead of for a NULL rcu_nocb_mask,
given that this latter is not necessarily a pointer, courtesy of Pranith Kumar.

10. Eliminate redundant rcu_sysidle_state variable.

11. Don't bother tracking sysidle state if there are no nohz_full=
CPUs in the system.

12. Avoid misordering in __call_rcu_nocb_enqueue().

13. Handle NOCB callbacks from irq-disabled idle code.

14. Avoid misordering in nocb_leader_wait().

Thanx, Paul

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

 b/include/linux/rcupdate.h |    8 +
 b/init/Kconfig             |    4 
 b/init/main.c              |    1 
 b/kernel/rcu/tree.c        |    4 
 b/kernel/rcu/tree.h        |    1 
 b/kernel/rcu/tree_plugin.h |   92 +++++++++++++++-------
 kernel/rcu/tree.c          |    3 
 kernel/rcu/tree.h          |    6 +
 kernel/rcu/tree_plugin.h   |  182 ++++++++++++++++++++++++++++++++-------------
 9 files changed, 216 insertions(+), 85 deletions(-)