public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH rcu 0/18] RCU no-CBs CPU updates for v5.17
@ 2021-12-02  0:28 Paul E. McKenney
  2021-12-02  0:28 ` [PATCH rcu 01/18] rcu: Tighten rcu_advance_cbs_nowake() checks Paul E. McKenney
                   ` (18 more replies)
  0 siblings, 19 replies; 23+ messages in thread
From: Paul E. McKenney @ 2021-12-02  0:28 UTC (permalink / raw)
  To: rcu
  Cc: linux-kernel, kernel-team, mingo, jiangshanlai, akpm,
	mathieu.desnoyers, josh, tglx, peterz, rostedt, dhowells,
	edumazet, fweisbec, oleg, joel, yury.norov

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

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2021-12-02 18:01 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-02  0:28 [PATCH rcu 0/18] RCU no-CBs CPU updates for v5.17 Paul E. McKenney
2021-12-02  0:28 ` [PATCH rcu 01/18] rcu: Tighten rcu_advance_cbs_nowake() checks Paul E. McKenney
2021-12-02  0:41   ` Frederic Weisbecker
2021-12-02  0:55     ` Paul E. McKenney
2021-12-02  0:28 ` [PATCH rcu 02/18] rcu/nocb: Make local rcu_nocb_lock_irqsave() safe against concurrent deoffloading Paul E. McKenney
2021-12-02  0:28 ` [PATCH rcu 03/18] rcu/nocb: Prepare state machine for a new step Paul E. McKenney
2021-12-02  0:28 ` [PATCH rcu 04/18] rcu/nocb: Invoke rcu_core() at the start of deoffloading Paul E. McKenney
2021-12-02  0:28 ` [PATCH rcu 05/18] rcu/nocb: Make rcu_core() callbacks acceleration preempt-safe Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 06/18] rcu/nocb: Make rcu_core() callbacks acceleration (de-)offloading safe Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 07/18] rcu/nocb: Check a stable offloaded state to manipulate qlen_last_fqs_check Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 08/18] rcu/nocb: Use appropriate rcu_nocb_lock_irqsave() Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 09/18] rcu/nocb: Limit number of softirq callbacks only on softirq Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 10/18] rcu: Fix callbacks processing time limit retaining cond_resched() Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 11/18] rcu: Apply callbacks processing time limit only on softirq Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 12/18] rcu/nocb: Don't invoke local rcu core on callback overload from nocb kthread Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 13/18] rcu/nocb: Remove rcu_node structure from nocb list when de-offloaded Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 14/18] rcu/nocb: Prepare nocb_cb_wait() to start with a non-offloaded rdp Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 15/18] rcu/nocb: Optimize kthreads and rdp initialization Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 16/18] rcu/nocb: Create kthreads on all CPUs if "rcu_nocbs=" or "nohz_full=" are passed Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 17/18] rcu/nocb: Allow empty "rcu_nocbs" kernel parameter Paul E. McKenney
2021-12-02  0:29 ` [PATCH rcu 18/18] rcu/nocb: Merge rcu_spawn_cpu_nocb_kthread() and rcu_spawn_one_nocb_kthread() Paul E. McKenney
2021-12-02  2:03 ` [PATCH rcu 0/18] RCU no-CBs CPU updates for v5.17 Yury Norov
2021-12-02 18:01   ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox