Re: [PATCH 19/17] sched_ext: Fix the stall watchdog blaming a bypassing owner for a stuck task

From: Tejun Heo

Date: Mon Oct 26 2026 - 17:32:05 EST


Hello, Andrea.

On Sun, Oct 25, 2026 at 04:52:51PM +0100, Andrea Righi wrote:
> Should we recheck watchdog_timeout after changing sch?
>
> The stall test above uses the task owner's timeout. So, a bypassing
> child with a short timeout could potentially cause its host to be
> ejected before the host's own timeout expires.

Yes, and the same mismatch is already in the dsq->sched blame that
2c91169377f4 ("sched_ext: Blame the DSQ's owning scheduler for a
runnable stall") added, which is in v7.3.

The blame doesn't need the DSQ at all. scx_exec_sched() gives the sched
running the task: the owner, or its host while the owner is bypassing.
That covers both the bypass DSQ case and the rescue/local DSQ case this
patch handles. The watchdog blames that sched and uses that sched's
timeout for the stall test.

The task's wait also carries across a bypass move. It waited under the
owner and then gets charged to the host, or the other way around when
bypass lifts. The fix restarts the wait when scx_bypass() requeues a
task, except for the root's own tasks.

So, I'm dropping this patch and will post the fix on its own for
sched_ext/for-7.4-fixes with a stable Cc.

Thanks.

--
tejun