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

From: Paul E. McKenney
Date: Thu Aug 28 2014 - 14:38:07 EST


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

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