All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] hrtimer: Refresh softirq deadline after clock changes in low-res mode
@ 2026-11-01 17:23 Avi Weiss
  2026-11-04 16:51 ` Frederic Weisbecker
  2026-11-09 19:53 ` [tip: timers/core] " tip-bot2 for Avi Weiss
  0 siblings, 2 replies; 3+ messages in thread
From: Avi Weiss @ 2026-11-01 17:23 UTC (permalink / raw)
  To: anna-maria; +Cc: frederic, tglx, mingo, linux-kernel, Avi Weiss

In periodic low-resolution mode, hrtimer_run_queues() updates the clock
base offsets at each tick but does not refresh softirq_expires_next.
When CLOCK_REALTIME is moved forward, an expired soft hrtimer can
therefore remain pending until the old monotonic deadline is reached.

Reevaluate the next expiry when hrtimer_update_base() observes a new
clock-was-set sequence, before checking whether to raise HRTIMER_SOFTIRQ.

Fixes: 5da70160462e ("hrtimer: Implement support for softirq based hrtimers")
Signed-off-by: Avi Weiss <thnkslprpt@gmail.com>
---
 kernel/time/hrtimer.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
index 17dd38a6cee7..5d1df371e931 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -2289,6 +2289,7 @@ void hrtimer_run_queues(void)
 	struct hrtimer_cpu_base *cpu_base = this_cpu_ptr(&hrtimer_bases);
 	unsigned long flags;
 	ktime_t now;
+	unsigned int seq;
 
 	if (hrtimer_hres_active(cpu_base))
 		return;
@@ -2306,7 +2307,10 @@ void hrtimer_run_queues(void)
 	}
 
 	raw_spin_lock_irqsave(&cpu_base->lock, flags);
+	seq = cpu_base->clock_was_set_seq;
 	now = hrtimer_update_base(cpu_base);
+	if (seq != cpu_base->clock_was_set_seq)
+		hrtimer_update_next_event(cpu_base);
 
 	if (!ktime_before(now, cpu_base->softirq_expires_next)) {
 		cpu_base->softirq_expires_next = KTIME_MAX;

base-commit: cbbddb6b08cc9900a87cccaa9b22bbe06aa4f50a
-- 
2.53.0


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

end of thread, other threads:[~2026-11-09 19:53 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-01 17:23 [PATCH] hrtimer: Refresh softirq deadline after clock changes in low-res mode Avi Weiss
2026-11-04 16:51 ` Frederic Weisbecker
2026-11-09 19:53 ` [tip: timers/core] " tip-bot2 for Avi Weiss

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.