[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211202002848.GA3127439@paulmck-ThinkPad-P17-Gen-1>
Date: Wed, 1 Dec 2021 16:28:48 -0800
From: "Paul E. McKenney" <paulmck@...nel.org>
To: rcu@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, kernel-team@...com, mingo@...nel.org,
jiangshanlai@...il.com, akpm@...ux-foundation.org,
mathieu.desnoyers@...icios.com, josh@...htriplett.org,
tglx@...utronix.de, peterz@...radead.org, rostedt@...dmis.org,
dhowells@...hat.com, edumazet@...gle.com, fweisbec@...il.com,
oleg@...hat.com, joel@...lfernandes.org, yury.norov@...il.com
Subject: [PATCH rcu 0/18] RCU no-CBs CPU updates for v5.17
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(-)
Powered by blists - more mailing lists