Message ID | 20221025135850.51044-3-anna-maria@linutronix.de (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | timer: Move from a push remote at enqueue to a pull at expiry model | expand |
On Tue, Oct 25, 2022 at 03:58:35PM +0200, Anna-Maria Behnsen wrote: > When the next tick is in the past, the delta between basemono and the next > tick gets negativ. But the next tick should never be in the past. The > negative effect of a wrong next tick might be a stop of the tick and timers > might expire late. > > To prevent expensive debugging when changing underlying code, add a > WARN_ON_ONCE into this code path. > > Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de> > Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Frederic Weisbecker <frederic@kernel.org> > --- > kernel/time/tick-sched.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c > index b0e3c9205946..7ffdc7ba19b4 100644 > --- a/kernel/time/tick-sched.c > +++ b/kernel/time/tick-sched.c > @@ -826,6 +826,8 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) > * If the tick is due in the next period, keep it ticking or > * force prod the timer. > */ > + WARN_ON_ONCE(basemono > next_tick); > + > delta = next_tick - basemono; > if (delta <= (u64)TICK_NSEC) { > /* > -- > 2.30.2 >
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index b0e3c9205946..7ffdc7ba19b4 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -826,6 +826,8 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) * If the tick is due in the next period, keep it ticking or * force prod the timer. */ + WARN_ON_ONCE(basemono > next_tick); + delta = next_tick - basemono; if (delta <= (u64)TICK_NSEC) { /*