All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH rcu 0/16 Lazy call_rcu() updates for v6.2
@ 2022-11-22  1:04 Paul E. McKenney
  2022-11-22  1:04 ` [PATCH v2 rcu 01/16] rcu: Simplify rcu_init_nohz() cpumask handling Paul E. McKenney
                   ` (15 more replies)
  0 siblings, 16 replies; 28+ messages in thread
From: Paul E. McKenney @ 2022-11-22  1:04 UTC (permalink / raw)
  To: rcu; +Cc: linux-kernel, kernel-team, rostedt

Hello!

This series provides energy efficiency for nearly-idle systems by making
call_rcu() more lazy.  Several NOCB changes come along for the ride:

1.	Simplify rcu_init_nohz() cpumask handling, courtesy of Zhen Lei.

2.	Fix late wakeup when flush of bypass cblist happens, courtesy of
	"Joel Fernandes (Google)".

3.	Fix missing nocb gp wake on rcu_barrier(), courtesy of Frederic
	Weisbecker.

4.	Make call_rcu() lazy to save power, courtesy of "Joel Fernandes
	(Google)".

5.	Refactor code a bit in rcu_nocb_do_flush_bypass(), courtesy of
	"Joel Fernandes (Google)".

6.	Shrinker for lazy rcu, courtesy of Vineeth Pillai.

7.	Add laziness and kfree tests, courtesy of "Joel Fernandes
	(Google)".

8.	percpu-refcount: Use call_rcu_flush() for atomic switch, courtesy
	of "Joel Fernandes (Google)".

9.	Use call_rcu_flush() instead of call_rcu, courtesy of "Joel
	Fernandes (Google)".

10.	Use call_rcu_flush() for async reader test, courtesy of "Joel
	Fernandes (Google)".

11.	Use call_rcu_flush() where needed, courtesy of "Joel Fernandes
	(Google)".

12.	scsi/scsi_error: Use call_rcu_flush() instead of call_rcu(),
	courtesy of Uladzislau Rezki.

13.	Make queue_rcu_work() use call_rcu_flush(), courtesy of Uladzislau
	Rezki.

14.	Use call_rcu_flush() instead of call_rcu(), courtesy of "Joel
	Fernandes (Google)".

15.	Use call_rcu_flush() for dst_release(), courtesy of "Joel
	Fernandes (Google)".

16.	devinet: Reduce refcount before grace period, courtesy of Eric
	Dumazet.

Changes since v1:

o	Add more adjustments to avoid excessive laziness (#15 and
	#16 above).

o	Get appropriate Cc lines onto non-RCU patches.

https://lore.kernel.org/all/20221019225138.GA2499943@paulmck-ThinkPad-P17-Gen-1/

						Thanx, Paul

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

 b/drivers/scsi/scsi_error.c |    2 
 b/include/linux/rcupdate.h  |    9 +
 b/kernel/rcu/Kconfig        |    8 +
 b/kernel/rcu/rcu.h          |    8 +
 b/kernel/rcu/rcuscale.c     |   67 +++++++++++-
 b/kernel/rcu/rcutorture.c   |   16 +-
 b/kernel/rcu/sync.c         |    2 
 b/kernel/rcu/tiny.c         |    2 
 b/kernel/rcu/tree.c         |   11 +
 b/kernel/rcu/tree.h         |    1 
 b/kernel/rcu/tree_exp.h     |    2 
 b/kernel/rcu/tree_nocb.h    |   34 +-----
 b/kernel/workqueue.c        |    2 
 b/lib/percpu-refcount.c     |    3 
 b/net/core/dst.c            |    2 
 b/net/ipv4/devinet.c        |   19 +--
 b/net/rxrpc/conn_object.c   |    2 
 kernel/rcu/rcuscale.c       |    2 
 kernel/rcu/tree.c           |  129 +++++++++++++++--------
 kernel/rcu/tree.h           |   11 +
 kernel/rcu/tree_nocb.h      |  243 ++++++++++++++++++++++++++++++++++++--------
 21 files changed, 434 insertions(+), 141 deletions(-)

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

end of thread, other threads:[~2022-11-28 21:39 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-22  1:04 [PATCH rcu 0/16 Lazy call_rcu() updates for v6.2 Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 01/16] rcu: Simplify rcu_init_nohz() cpumask handling Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 02/16] rcu: Fix late wakeup when flush of bypass cblist happens Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 03/16] rcu: Fix missing nocb gp wake on rcu_barrier() Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 04/16] rcu: Make call_rcu() lazy to save power Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 05/16] rcu: Refactor code a bit in rcu_nocb_do_flush_bypass() Paul E. McKenney
2022-11-23 15:59   ` Frederic Weisbecker
2022-11-23 17:54     ` Paul E. McKenney
2022-11-24  1:00       ` Joel Fernandes
2022-11-22  1:04 ` [PATCH v2 rcu 06/16] rcu: Shrinker for lazy rcu Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 07/16] rcuscale: Add laziness and kfree tests Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 08/16] percpu-refcount: Use call_rcu_flush() for atomic switch Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 09/16] rcu/sync: Use call_rcu_flush() instead of call_rcu Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 10/16] rcu/rcuscale: Use call_rcu_flush() for async reader test Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 11/16] rcu/rcutorture: Use call_rcu_flush() where needed Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 12/16] scsi/scsi_error: Use call_rcu_flush() instead of call_rcu() Paul E. McKenney
2022-11-26  0:11   ` Bart Van Assche
2022-11-28 21:39     ` Paul E. McKenney
2022-11-26  2:42   ` Martin K. Petersen
2022-11-22  1:04 ` [PATCH v2 rcu 13/16] workqueue: Make queue_rcu_work() use call_rcu_flush() Paul E. McKenney
2022-11-22  1:09   ` Tejun Heo
2022-11-22  1:23     ` Paul E. McKenney
2022-11-22  1:37       ` Tejun Heo
2022-11-22  1:52         ` Paul E. McKenney
2022-11-22 21:30           ` Tejun Heo
2022-11-22  1:04 ` [PATCH v2 rcu 14/16] rxrpc: Use call_rcu_flush() instead of call_rcu() Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 15/16] net: Use call_rcu_flush() for dst_release() Paul E. McKenney
2022-11-22  1:04 ` [PATCH v2 rcu 16/16] net: devinet: Reduce refcount before grace period Paul E. McKenney

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.