Re: [PATCH] sched_ext: Fix NULL pointer deref and warnings during scx teardown
From: Tejun Heo
Date: Mon Feb 02 2026 - 12:16:55 EST
Hello,
On Mon, Feb 02, 2026 at 04:13:41PM +0100, Andrea Righi wrote:
> @@ -2619,6 +2619,9 @@ static void set_cpus_allowed_scx(struct task_struct *p,
>
> set_cpus_allowed_common(p, ac);
>
> + if (unlikely(!sch))
> + return;
> +
I don't quite understand how this would happen. set_cpu_allowed_scx() is
called from do_set_cpus_allowed() with task_rq locked. ie. the task *has* to
be on sched_ext for it to be called. It's straightforward task rq lock
synchronization, so there's no race window.
Combined with the failures in switching_to_scx() and switched_form_scx(), I
wonder whether what's actually broken is more something like the disable
path missing some tasks?
Thanks.
--
tejun