Hello! This series provides RCU no-CB CPUs updates, most notably the ability to offload CPUs that are in de-offloaded state at boot time. 1. Tighten rcu_advance_cbs_nowake() checks. 2. Make local rcu_nocb_lock_irqsave() safe against concurrent deoffloading, courtesy of Frederic Weisbecker. 3. Prepare state machine for a new step, courtesy of Frederic Weisbecker. 4. Invoke rcu_core() at the start of deoffloading, courtesy of Frederic Weisbecker. 5. Make rcu_core() callbacks acceleration preempt-safe, courtesy of Thomas Gleixner. 6. Make rcu_core() callbacks acceleration (de-)offloading safe, courtesy of Frederic Weisbecker. 7. Check a stable offloaded state to manipulate qlen_last_fqs_check, courtesy of Frederic Weisbecker. 8. Use appropriate rcu_nocb_lock_irqsave(), courtesy of Frederic Weisbecker. 9. Limit number of softirq callbacks only on softirq, courtesy of Frederic Weisbecker. 10. Fix callbacks processing time limit retaining cond_resched(), courtesy of Frederic Weisbecker. 11. Apply callbacks processing time limit only on softirq, courtesy of Frederic Weisbecker. 12. Don't invoke local rcu core on callback overload from nocb kthread, courtesy of Frederic Weisbecker. 13. Remove rcu_node structure from nocb list when de-offloaded, courtesy of Frederic Weisbecker. 14. Prepare nocb_cb_wait() to start with a non-offloaded rdp, courtesy of Frederic Weisbecker. 15. Optimize kthreads and rdp initialization, courtesy of Frederic Weisbecker. 16. Create kthreads on all CPUs if "rcu_nocbs=" or "nohz_full=" are passed, courtesy of Frederic Weisbecker. 17. Allow empty "rcu_nocbs" kernel parameter, courtesy of Frederic Weisbecker. 18. Merge rcu_spawn_cpu_nocb_kthread() and rcu_spawn_one_nocb_kthread(), courtesy of Frederic Weisbecker. Note that #17 might be updated given some ongoing work by Yury Norov to support "none" for bitmaps, including the cpumask taken by the rcu_nocbs kernel-boot parameter. Thanx, Paul ------------------------------------------------------------------------ b/Documentation/admin-guide/kernel-parameters.txt | 37 +++-- b/include/linux/rcu_segcblist.h | 37 +++-- b/kernel/rcu/rcu_segcblist.c | 6 b/kernel/rcu/rcu_segcblist.h | 12 + b/kernel/rcu/tree.c | 7 - b/kernel/rcu/tree.h | 16 +- b/kernel/rcu/tree_nocb.h | 24 ++- include/linux/rcu_segcblist.h | 14 ++ kernel/rcu/rcu_segcblist.c | 6 kernel/rcu/tree.c | 117 +++++++++++------- kernel/rcu/tree.h | 7 - kernel/rcu/tree_nocb.h | 140 ++++++++++++++-------- 12 files changed, 275 insertions(+), 148 deletions(-)