Re: [PATCH v3 02/17] tick-sched: Warn when next tick seems to be in the past

Frederic Weisbecker
2022-10-25T22:12:11Z

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
>