mbox series

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

Message ID 20241226233052.145450-1-frederic@kernel.org (mailing list archive)
Headers show
Series hrtimer: Fix timers queued locally from offline CPUs | expand

Message

Frederic Weisbecker Dec. 26, 2024, 11:30 p.m. UTC
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(-)

Comments

Paul E. McKenney Jan. 1, 2025, 4:56 a.m. UTC | #1
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
>