RCU Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH tip/core/rcu 0/21] Provide runtime switching of offloaded CPUs
@ 2021-01-06  1:39 Paul E. McKenney
  2021-01-06  4:48 ` [PATCH tip/core/rcu 01/21] rcu/nocb: Turn enabled/offload states into a common flag paulmck
                   ` (20 more replies)
  0 siblings, 21 replies; 22+ messages in thread
From: Paul E. McKenney @ 2021-01-06  1:39 UTC (permalink / raw)
  To: rcu
  Cc: linux-kernel, kernel-team, mingo, jiangshanlai, akpm,
	mathieu.desnoyers, josh, tglx, peterz, rostedt, dhowells,
	edumazet, fweisbec, oleg, joel

Hello!

Currently, it is necessary to reboot to change a given CPU between
invoking its own RCU callbacks via softirq and offloading callback
invocation to an rcuo kthread.  This series allows CPUs that were
initially offloaded to be toggled back and forth at runtime, without
requiring a reboot.

Note that you can boot with all CPUs offloaded, de-offload them
as needed immediately after boot, and thereafter toggled back and
forth as desired.

1.	Turn enabled/offload states into a common flag, courtesy of
	Frederic Weisbecker.

2.	Provide basic callback offloading state machine bits, courtesy
	of Frederic Weisbecker.

3.	Always init segcblist on CPU up, courtesy of Frederic Weisbecker.

4.	De-offloading CB kthread, courtesy of Frederic Weisbecker.

5.	Don't deoffload an offline CPU with pending work, courtesy of
	Frederic Weisbecker.

6.	De-offloading GP kthread, courtesy of Frederic Weisbecker.

7.	Re-offload support, courtesy of Frederic Weisbecker.

8.	Shutdown nocb timer on de-offloading, courtesy of Frederic
	Weisbecker.

9.	Flush bypass before setting SEGCBLIST_SOFTIRQ_ONLY, courtesy of
	Frederic Weisbecker.

10.	Set SEGCBLIST_SOFTIRQ_ONLY at the very last stage of
	de-offloading, courtesy of Frederic Weisbecker.

11.	Only cond_resched() from actual offloaded batch processing,
	courtesy of Frederic Weisbecker.

12.	Process batch locally as long as offloading isn't complete,
	courtesy of Frederic Weisbecker.

13.	Locally accelerate callbacks as long as offloading isn't complete,
	courtesy of Frederic Weisbecker.

14.	Add lockdep_is_cpus_held(), courtesy of Frederic Weisbecker.

15.	Add timer_curr_running(), courtesy of Frederic Weisbecker.

16.	Test runtime toggling of CPUs' callback offloading.

17.	Support nocb toggle in TREE01, courtesy of Frederic Weisbecker.

18.	Add grace period and task state to show_rcu_nocb_state() output.

19.	Add nocb CB kthread list to show_rcu_nocb_state() output.

20.	Code-style nits in callback-offloading toggling.

21.	Do any deferred nocb wakeups at CPU offline time.

						Thanx, Paul

------------------------------------------------------------------------

 Documentation/admin-guide/kernel-parameters.txt            |    8 
 include/linux/cpu.h                                        |    2 
 include/linux/rcu_segcblist.h                              |  121 +++
 include/linux/rcupdate.h                                   |    4 
 include/linux/timer.h                                      |    2 
 kernel/cpu.c                                               |    7 
 kernel/rcu/rcu_segcblist.c                                 |   17 
 kernel/rcu/rcu_segcblist.h                                 |   79 +-
 kernel/rcu/rcutorture.c                                    |   90 ++
 kernel/rcu/tree.c                                          |   31 
 kernel/rcu/tree.h                                          |    2 
 kernel/rcu/tree_plugin.h                                   |  433 +++++++++++--
 kernel/time/timer.c                                        |   13 
 tools/testing/selftests/rcutorture/configs/rcu/TREE01.boot |    4 
 14 files changed, 714 insertions(+), 99 deletions(-)

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

end of thread, back to index

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-06  1:39 [PATCH tip/core/rcu 0/21] Provide runtime switching of offloaded CPUs Paul E. McKenney
2021-01-06  4:48 ` [PATCH tip/core/rcu 01/21] rcu/nocb: Turn enabled/offload states into a common flag paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 02/21] rcu/nocb: Provide basic callback offloading state machine bits paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 03/21] rcu/nocb: Always init segcblist on CPU up paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 04/21] rcu/nocb: De-offloading CB kthread paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 05/21] rcu/nocb: Don't deoffload an offline CPU with pending work paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 06/21] rcu/nocb: De-offloading GP kthread paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 07/21] rcu/nocb: Re-offload support paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 08/21] rcu/nocb: Shutdown nocb timer on de-offloading paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 09/21] rcu/nocb: Flush bypass before setting SEGCBLIST_SOFTIRQ_ONLY paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 10/21] rcu/nocb: Set SEGCBLIST_SOFTIRQ_ONLY at the very last stage of de-offloading paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 11/21] rcu/nocb: Only cond_resched() from actual offloaded batch processing paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 12/21] rcu/nocb: Process batch locally as long as offloading isn't complete paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 13/21] rcu/nocb: Locally accelerate callbacks " paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 14/21] cpu/hotplug: Add lockdep_is_cpus_held() paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 15/21] timer: Add timer_curr_running() paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 16/21] rcutorture: Test runtime toggling of CPUs' callback offloading paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 17/21] tools/rcutorture: Support nocb toggle in TREE01 paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 18/21] rcu/nocb: Add grace period and task state to show_rcu_nocb_state() output paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 19/21] rcu/nocb: Add nocb CB kthread list " paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 20/21] rcu/nocb: Code-style nits in callback-offloading toggling paulmck
2021-01-06  4:48 ` [PATCH tip/core/rcu 21/21] rcu: Do any deferred nocb wakeups at CPU offline time paulmck

RCU Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/rcu/0 rcu/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 rcu rcu/ https://lore.kernel.org/rcu \
		rcu@vger.kernel.org
	public-inbox-index rcu

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.rcu


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git