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

From: Frederic Weisbecker
Date: Thu Dec 26 2024 - 18:31:10 EST


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@xxxxxxxxx/)

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