Re: [REPORT] sched: ITMT + DELAY_DEQUEUE: woken task waits ~1 ms behind another task on the preferred CPU while allowed CPUs are idle

From: Francesco Nigro

Date: Thu Nov 05 2026 - 03:13:16 EST


On Thu, 2026-11-05 at 09:41 +0530, K Prateek Nayak wrote:
> Hello Francesco,

Hi Prateek,

thanks a lot for looking into this, and for the patch.

This is a corporate machine, so I can't promise I will be able to boot
a patched kernel on it, but I will try.

> Since you say ITMT disabled actually solves this issue, I suspect there is a
> race between the idle balancer moving the delayed task to a preferred CPU vs
> a wakeup that also lands on the same CPU.

perf sched shows a race like that, but the task moved is the running
one, by active balance. One example (perf sched timehist, trimmed; ms):

.654334 [6] worker 482 awakened: migration/7
.654337 [6] worker 482 blocks
.654338 [7] worker 481 preempted while running
.654341 [7] migration/7 migrated: worker 481 cpu 7 => 6
.654341 [2] waker awakened: worker 482
.655572 [6] worker 482 ran 1.006 after 0.224 sch delay

Does your change cover the active balance path too?

> So at this point, I would have expected B to have already been
> moved by a newidle / idle balance.

Not here: in 270 of 286 waits of 0.5 ms or more, neither worker left
CPU 6, and CPUs 4, 5 and 7 were idle for at least 98 % of the wait.

Trace summary and excerpt:
https://github.com/franz1981/itmt-delay-dequeue-repro/tree/827b6b2

Thanks,
Franz