Re: [PATCH v3] tick/nohz: Reevaluate the tick for kicks flushed outside hardirq

From: Frederic Weisbecker

Date: Fri Oct 23 2026 - 11:08:04 EST


Le Fri, Oct 23, 2026 at 10:51:00PM +0800, Peng Wang a écrit :
> The nohz full kick relies on IRQ exit to reevaluate the tick. However,
> a remote kick can also be flushed from task context without an IRQ
> exit guaranteed to follow. If a tick dependency is set or an earlier
> timer is queued after the idle-exit reevaluation, the required tick
> update can be delayed until another interrupt.
>
> Reevaluate the tick directly from the callback outside hardirq context.
> Keep the existing IRQ-exit handling for hardirq callbacks. The offline
> flush remains harmless because tick_sched_timer_dying() has already
> cleared TS_FLAG_NOHZ.
>
> Fixes: 4b44a21dd640 ("irq_work, smp: Allow irq_work on call_single_queue")
> Fixes: a5183862e76f ("tick/nohz: Conditionally restart tick on idle exit")
> Suggested-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
> Co-developed-by: He Rongguang <herongguang@xxxxxxxxxxxxxxxxx>
> Signed-off-by: He Rongguang <herongguang@xxxxxxxxxxxxxxxxx>
> Signed-off-by: Peng Wang <peng_wang@xxxxxxxxxxxxxxxxx>

Reviewed-by: Frederic Weisbecker <frederic@xxxxxxxxxx>

Thanks a lot!

--
Frederic Weisbecker
SUSE Labs