diff options
| author | Peng Wang <peng_wang@linux.alibaba.com> | 2026-10-23 22:51:00 +0800 |
|---|---|---|
| committer | Thomas Gleixner <tglx@kernel.org> | 2026-10-25 22:43:19 +0100 |
| commit | e389ae428847a2e6a3b698b5967df68ccf90361c (patch) | |
| tree | 1b13ba6c164a772d971a5ed4d0016ae13fcda3c0 /scripts/basic | |
| parent | 45aeb7b3039355cfaf01ee1f7e104a55a8d61d0b (diff) | |
| download | linux-e389ae428847a2e6a3b698b5967df68ccf90361c.tar.gz linux-e389ae428847a2e6a3b698b5967df68ccf90361c.zip | |
tick/nohz: Reevaluate the tick for kicks flushed outside hardirq
The nohz full kick relies on interrupt exit to reevaluate the
tick. However, a remote kick can also be flushed from task context without
an interrupt 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 interrupt 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@kernel.org>
Co-developed-by: He Rongguang <herongguang@linux.alibaba.com>
Signed-off-by: He Rongguang <herongguang@linux.alibaba.com>
Signed-off-by: Peng Wang <peng_wang@linux.alibaba.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20261023145101.8217-1-peng_wang@linux.alibaba.com
Diffstat (limited to 'scripts/basic')
0 files changed, 0 insertions, 0 deletions
