[PATCH rcu 0/18] RCU no-CBs CPU updates for v5.17

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux