Re: [PATCHSET sched_ext/for-7.2-fixes] sched_ext: Fix core scheduling
From: Andrea Righi
Date: Wed Aug 12 2026 - 16:26:02 EST
Hi Tejun,
On Fri, Aug 07, 2026 at 11:02:15AM -1000, Tejun Heo wrote:
> Hello,
>
> sched_ext's core scheduling support has been broken since 4c95380701f5
> ("sched/ext: Fold balance_scx() into pick_task_scx()") made dispatch run
> from inside ->pick_task(). Dispatching can release the rq lock, which lets
> core-wide selections on the same core interleave and corrupt each other's
> state - crashing on a cleared rq->core_pick or leaving a dequeued task
> running, which wedges the machine:
>
> https://github.com/sched-ext/scx/issues/3715
>
> The main fix (0006) makes the core-sched pick return RETRY_TASK whenever
> its dispatch released the rq lock, so that a selection only ever commits
> picks made under a continuously held lock. The preceding patches update
> the core-sched pick to handle lock-dropping picks (0001-0002) and fix
> adjacent breakages from the same fold that core scheduling support needs
> (0003-0005).
>From a sched_ext perspective everything looks good to me with the updated patch
3/6. For the whole series:
Reviewed-by: Andrea Righi <arighi@xxxxxxxxxx>
Thanks,
-Andrea
>
> 0001-sched-core-Handle-pick_task-releasing-the-rq-lock.patch
> 0002-sched-core-Make-core-sched-flips-wait-for-in-flight-.patch
> 0003-sched_ext-Replace-SCX_RQ_BAL_KEEP-with-a-dispatch-ve.patch
> 0004-sched_ext-Fix-this_rq-assumptions-in-dispatch-kfuncs.patch
> 0005-sched_ext-Count-rq-lock-releases-in-rq-scx.lock_drop.patch
> 0006-sched_ext-Fix-rq-core_pick-corruption-under-core-sch.patch
>
> Based on sched_ext/for-7.2-fixes (d4a00d61a5c2). The patchset is also
> available in the following git branch:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git coresched-fixes
>
> diffstat follows.
>
> kernel/sched/core.c | 49 ++++++--
> kernel/sched/ext/ext.c | 302 +++++++++++++++++++++++++++++++++++--------------
> kernel/sched/sched.h | 5 +-
> 3 files changed, 265 insertions(+), 91 deletions(-)
>
> --
> tejun