[PATCH 0/3 v2] hrtimer: Fix timers queued locally from offline CPUs

Frederic Weisbecker posted 3 patches 1 year, 1 month ago
There is a newer version of this series
include/linux/hrtimer_defs.h |  1 +
kernel/rcu/tree.c            | 34 +---------------------
kernel/rcu/tree_exp.h        |  2 +-
kernel/rcu/tree_nocb.h       | 10 ++-----
kernel/time/hrtimer.c        | 55 +++++++++++++++++++++++++++++++++---
5 files changed, 56 insertions(+), 46 deletions(-)
[PATCH 0/3 v2] hrtimer: Fix timers queued locally from offline CPUs
Posted by Frederic Weisbecker 1 year, 1 month ago
5c0930ccaad5 ("hrtimers: Push pending hrtimers away from outgoing CPU earlier")
was introduced to fix stalls with scheduler bandwidth timers getting
migrated while some kthreads handling CPU hotplug rely on bandwidth.

However this has introduced several other issues which used to be
confined to RCU. But not anymore as it is spreading to hotplug code
itself (https://lore.kernel.org/all/20241213203739.1519801-1-usamaarif642@gmail.com/)

Instead of introducing yet another new hackery, fix the problem in
hrtimers for everyone.

Changes since v1:

_ Fix a build issue when CONFIG_HOTPLUG_CPU=n (folded #ifdeffery by Paul)

_ Remove the unconditionaly base lock within the IPI when both nohz and
  high resolution are off. There is really nothing to do for the IPI in
  such case.

Frederic Weisbecker (3):
  hrtimers: Force migrate away hrtimers queued after
    CPUHP_AP_HRTIMERS_DYING
  rcu: Remove swake_up_one_online() bandaid
  Revert "rcu/nocb: Fix rcuog wake-up from offline softirq"

 include/linux/hrtimer_defs.h |  1 +
 kernel/rcu/tree.c            | 34 +---------------------
 kernel/rcu/tree_exp.h        |  2 +-
 kernel/rcu/tree_nocb.h       | 10 ++-----
 kernel/time/hrtimer.c        | 55 +++++++++++++++++++++++++++++++++---
 5 files changed, 56 insertions(+), 46 deletions(-)

-- 
2.46.0
Re: [PATCH 0/3 v2] hrtimer: Fix timers queued locally from offline CPUs
Posted by Paul E. McKenney 1 year, 1 month ago
On Fri, Dec 27, 2024 at 12:30:49AM +0100, Frederic Weisbecker wrote:
> 5c0930ccaad5 ("hrtimers: Push pending hrtimers away from outgoing CPU earlier")
> was introduced to fix stalls with scheduler bandwidth timers getting
> migrated while some kthreads handling CPU hotplug rely on bandwidth.
> 
> However this has introduced several other issues which used to be
> confined to RCU. But not anymore as it is spreading to hotplug code
> itself (https://lore.kernel.org/all/20241213203739.1519801-1-usamaarif642@gmail.com/)
> 
> Instead of introducing yet another new hackery, fix the problem in
> hrtimers for everyone.

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

I expect that this result applies to v3 as well.  ;-)

							Thanx, Paul

> Changes since v1:
> 
> _ Fix a build issue when CONFIG_HOTPLUG_CPU=n (folded #ifdeffery by Paul)
> 
> _ Remove the unconditionaly base lock within the IPI when both nohz and
>   high resolution are off. There is really nothing to do for the IPI in
>   such case.
> 
> Frederic Weisbecker (3):
>   hrtimers: Force migrate away hrtimers queued after
>     CPUHP_AP_HRTIMERS_DYING
>   rcu: Remove swake_up_one_online() bandaid
>   Revert "rcu/nocb: Fix rcuog wake-up from offline softirq"
> 
>  include/linux/hrtimer_defs.h |  1 +
>  kernel/rcu/tree.c            | 34 +---------------------
>  kernel/rcu/tree_exp.h        |  2 +-
>  kernel/rcu/tree_nocb.h       | 10 ++-----
>  kernel/time/hrtimer.c        | 55 +++++++++++++++++++++++++++++++++---
>  5 files changed, 56 insertions(+), 46 deletions(-)
> 
> -- 
> 2.46.0
>