mbox series

[00/11] rcu/nocb: (De-)offloading on offline CPUs

Message ID 20240530134552.5467-1-frederic@kernel.org (mailing list archive)
Headers show
Series rcu/nocb: (De-)offloading on offline CPUs | expand

Message

Frederic Weisbecker May 30, 2024, 1:45 p.m. UTC
Last LPC's debates seem to have raised general agreement that nohz_full
cpusets interface should operate on offline CPUs to simplify the picture.
And since the only known future user of NOCB (de-)offloading is going
to be nohz_full cpusets, its transitions need to operate on offline
CPUs as well.

The good news is that it simplifies a bit the (de-)offloading code, as
the diffstat testifies.

Thanks.

Frederic Weisbecker (11):
  rcu/nocb: Introduce RCU_NOCB_LOCKDEP_WARN()
  rcu/nocb: Move nocb field at the end of state struct
  rcu/nocb: Assert no callbacks while nocb kthread allocation fails
  rcu/nocb: Introduce nocb mutex
  rcu/nocb: (De-)offload callbacks on offline CPUs only
  rcu/nocb: Remove halfway (de-)offloading handling from bypass
  rcu/nocb: Remove halfway (de-)offloading handling from rcu_core()'s QS
    reporting
  rcu/nocb: Remove halfway (de-)offloading handling from rcu_core
  rcu/nocb: Remove SEGCBLIST_RCU_CORE
  rcu/nocb: Remove SEGCBLIST_KTHREAD_CB
  rcu/nocb: Simplify (de-)offloading state machine

 include/linux/rcu_segcblist.h |   6 +-
 include/linux/rcupdate.h      |   7 +
 kernel/rcu/rcu_segcblist.c    |  11 --
 kernel/rcu/rcu_segcblist.h    |  11 +-
 kernel/rcu/tree.c             |  45 +-----
 kernel/rcu/tree.h             |   6 +-
 kernel/rcu/tree_nocb.h        | 266 +++++++++++++---------------------
 kernel/rcu/tree_plugin.h      |   5 +-
 8 files changed, 122 insertions(+), 235 deletions(-)

Comments

Paul E. McKenney July 19, 2024, 5:30 p.m. UTC | #1
On Thu, May 30, 2024 at 03:45:41PM +0200, Frederic Weisbecker wrote:
> Last LPC's debates seem to have raised general agreement that nohz_full
> cpusets interface should operate on offline CPUs to simplify the picture.
> And since the only known future user of NOCB (de-)offloading is going
> to be nohz_full cpusets, its transitions need to operate on offline
> CPUs as well.
> 
> The good news is that it simplifies a bit the (de-)offloading code, as
> the diffstat testifies.

Good stuf!!!

For the series:

Reviewed-by: Paul E. McKenney <paulmck@kernel.org>

> Thanks.
> 
> Frederic Weisbecker (11):
>   rcu/nocb: Introduce RCU_NOCB_LOCKDEP_WARN()
>   rcu/nocb: Move nocb field at the end of state struct
>   rcu/nocb: Assert no callbacks while nocb kthread allocation fails
>   rcu/nocb: Introduce nocb mutex
>   rcu/nocb: (De-)offload callbacks on offline CPUs only
>   rcu/nocb: Remove halfway (de-)offloading handling from bypass
>   rcu/nocb: Remove halfway (de-)offloading handling from rcu_core()'s QS
>     reporting
>   rcu/nocb: Remove halfway (de-)offloading handling from rcu_core
>   rcu/nocb: Remove SEGCBLIST_RCU_CORE
>   rcu/nocb: Remove SEGCBLIST_KTHREAD_CB
>   rcu/nocb: Simplify (de-)offloading state machine
> 
>  include/linux/rcu_segcblist.h |   6 +-
>  include/linux/rcupdate.h      |   7 +
>  kernel/rcu/rcu_segcblist.c    |  11 --
>  kernel/rcu/rcu_segcblist.h    |  11 +-
>  kernel/rcu/tree.c             |  45 +-----
>  kernel/rcu/tree.h             |   6 +-
>  kernel/rcu/tree_nocb.h        | 266 +++++++++++++---------------------
>  kernel/rcu/tree_plugin.h      |   5 +-
>  8 files changed, 122 insertions(+), 235 deletions(-)
> 
> -- 
> 2.45.1
>