Re: [PATCH 1/2] sched/psi: Create the psimon kthread outside of cgroup_mutex
From: Johannes Weiner
Date: Mon Jul 13 2026 - 06:53:15 EST
On Sun, Jul 12, 2026 at 07:46:18AM -1000, Tejun Heo wrote:
> a5b98009f16d ("sched/psi: fix race between file release and pressure write")
> made pressure_write() hold cgroup_mutex across psi_trigger_create(), which
> forks the psimon kthread for the first rtpoll trigger. As kthread creation
> depends on the whole fork path, the commit inadvertently created a lot of
> unwanted locking dependencies from cgroup_mutex.
>
> sched_ext got hit by one: its enable path blocks forks and then grabs
> cgroup_mutex, so a pressure write racing a scheduler enable deadlocks, with
> every other fork piling up behind.
>
> Fix it by splitting trigger creation so that the worker is forked with
> cgroup_mutex dropped and the kernfs active reference left broken. The latter
> matters because rmdir and cgroup.pressure writes drain active references
> under cgroup_mutex. Publishing the trigger last keeps error reporting
> synchronous and preserves the of->priv lifetime rules.
>
> The trigger registered in the first stage pins the group's rtpoll machinery
> across the unlocked window, leaving only creation races to resolve. The
> catch-up poll on installation covers scheduling attempts dropped while there
> was no worker.
>
> v2: Retagged sched/psi (was cgroup).
>
> Fixes: a5b98009f16d ("sched/psi: fix race between file release and pressure write")
> Cc: stable@xxxxxxxxxxxxxxx
> Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
> Cc: Edward Adam Davis <eadavis@xxxxxx>
> Cc: Chen Ridong <chenridong@xxxxxxxxxxxxxxx>
> Reported-by: Matt Fleming <mfleming@xxxxxxxxxxxxxx>
> Closes: https://lore.kernel.org/all/20260710100441.2653477-1-matt@xxxxxxxxxxxxxxxx/
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>