From: Tejun Heo <tj@kernel.org>
To: David Vernet <void@manifault.com>,
Andrea Righi <arighi@nvidia.com>,
Changwoo Min <changwoo@igalia.com>,
sched-ext@lists.linux.dev
Cc: Emil Tsalapatis <emil@etsalapatis.com>,
Peter Zijlstra <peterz@infradead.org>,
ElXreno <elxreno@gmail.com>,
linux-kernel@vger.kernel.org
Subject: [PATCHSET sched_ext/for-7.2-fixes] sched_ext: Fix core scheduling
Date: Fri, 7 Aug 2026 11:02:15 -1000 [thread overview]
Message-ID: <20260807210221.232543-1-tj@kernel.org> (raw)
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).
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
next reply other threads:[~2026-08-07 21:02 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-07 21:02 Tejun Heo [this message]
2026-08-07 21:02 ` [PATCH 1/6] sched/core: Handle pick_task() releasing the rq lock Tejun Heo
2026-08-07 21:02 ` [PATCH 2/6] sched/core: Make core-sched flips wait for in-flight selections Tejun Heo
2026-08-07 21:02 ` [PATCH 3/6] sched_ext: Replace SCX_RQ_BAL_KEEP with a dispatch verdict return Tejun Heo
2026-08-07 21:02 ` [PATCH 4/6] sched_ext: Fix this_rq() assumptions in dispatch kfuncs Tejun Heo
2026-08-07 21:02 ` [PATCH 5/6] sched_ext: Count rq lock releases in rq->scx.lock_drop_seq Tejun Heo
2026-08-07 21:02 ` [PATCH 6/6] sched_ext: Fix rq->core_pick corruption under core scheduling Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260807210221.232543-1-tj@kernel.org \
--to=tj@kernel.org \
--cc=arighi@nvidia.com \
--cc=changwoo@igalia.com \
--cc=elxreno@gmail.com \
--cc=emil@etsalapatis.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=sched-ext@lists.linux.dev \
--cc=void@manifault.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox