Re: [PATCHSET sched_ext/for-7.1-fixes] sched_ext: Assorted fixes

From: Andrea Righi

Date: Fri Apr 24 2026 - 18:12:20 EST


On Fri, Apr 24, 2026 at 10:44:05AM -1000, Tejun Heo wrote:
> Hello,
>
> This patchset collects fixes for issues surfaced by Chris Mason's
> AI-assisted review of sched_ext. The bugs span use-after-free, leak,
> lock/state inconsistency, rq-lock AA deadlock, and cross-task kfunc
> misuse paths. Each patch stands on its own.
>
> Based on sched_ext/for-7.1-fixes (510a27055446).

Sent a couple of comments about patch 13 and patch 15.

Everything else looks good to me, feel free to add:

Reviewed-by: Andrea Righi <arighi@xxxxxxxxxx>

Thanks,
-Andrea

>
> 1: sched_ext: Unregister sub_kset on scheduler disable
> 2: sched_ext: Guard scx_dsq_move() against NULL kit->dsq after failed iter_new
> 3: sched_ext: Skip tasks with stale task_rq in bypass_lb_cpu()
> 4: sched_ext: Don't disable tasks in scx_sub_enable_workfn() abort path
> 5: sched_ext: Read scx_root under scx_cgroup_ops_rwsem in cgroup setters
> 6: sched_ext: Resolve caller's scheduler in scx_bpf_destroy_dsq() / scx_bpf_dsq_nr_queued()
> 7: sched_ext: Use dsq->first_task instead of list_empty() in dispatch_enqueue() FIFO-tail
> 8: sched_ext: Save and restore scx_locked_rq across SCX_CALL_OP
> 9: sched_ext: Pass held rq to SCX_CALL_OP() for dump_cpu/dump_task
> 10: sched_ext: Pass held rq to SCX_CALL_OP() for core_sched_before
> 11: sched_ext: Make bypass LB cpumasks per-scheduler
> 12: sched_ext: Align cgroup #ifdef guards with SUB_SCHED vs GROUP_SCHED
> 13: sched_ext: Refuse cross-task select_cpu_from_kfunc calls
>
> Git tree: git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git fix-slop-review
>
> kernel/sched/ext.c | 238 +++++++++++++++++++++++++++++---------------
> kernel/sched/ext_idle.c | 19 +++-
> kernel/sched/ext_internal.h | 2 +
> 3 files changed, 174 insertions(+), 85 deletions(-)
>
> Thanks.
>
> --
> tejun