summaryrefslogtreecommitdiff
path: root/scripts/Makefile.thinlto
diff options
context:
space:
mode:
authorMani Tofigh <mt4022@columbia.edu>2026-11-03 13:09:20 -0500
committerTejun Heo <tj@kernel.org>2026-11-05 08:02:16 -1000
commit8ab6980c70076db5f8c0c66a5fac06472b254333 (patch)
tree8e136e538fbce815c9f6b35a0bc98be2c64ee8fa /scripts/Makefile.thinlto
parentfffbdad76a57eed26cff1be19f4cbb407f0b6e7c (diff)
downloadlinux-next-8ab6980c70076db5f8c0c66a5fac06472b254333.tar.gz
linux-next-8ab6980c70076db5f8c0c66a5fac06472b254333.zip
cgroup/freezer: walk exiting tasks in the v1 freezer
An exiting task can stay frozen after its v1 freezer cgroup is thawed. Since commit a72f73c4dd9b ("cgroup: Don't expose dead tasks in cgroup") the css task walk hides an exiting task once its process has no live threads left. That count drops when another thread of the process exits, which can happen between the freeze and the thaw walk. A pid namespace init hits this easily since it waits freezably in zap_pid_ns_processes() after commit 81933038f5e2 ("pid_namespace: make zap_pid_ns_processes() freezable"): Task A (pid ns init) Task B (A's thread) Task C do_exit() exit_signals() do_exit() zap_pid_ns_processes() write FROZEN /* A frozen */ /* live count 0 */ write THAWED /* A skipped */ A then stays frozen even after SIGKILL: [ 10.775155] task:fz-init state:D stack:28152 pid:65 tgid:65 ppid:1 task_flags:0xc0004c flags:0x00080000 [ 10.775176] Call Trace: [ 10.775180] <TASK> [ 10.775188] __schedule+0x10f1/0x4760 [ 10.775252] schedule+0xd7/0x2c0 [ 10.775265] zap_pid_ns_processes+0x2c7/0x5f0 [ 10.775346] do_exit+0x1bf4/0x2560 [ 10.775403] __x64_sys_exit+0x3d/0x50 [ 10.775414] x64_sys_call+0x156c/0x1570 [ 10.775425] do_syscall_64+0xfb/0x590 [ 10.775450] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 10.775529] </TASK> Use CSS_TASK_ITER_WITH_DEAD in the three v1 freezer walks so they all see the same tasks, as commit 60f21a264930 ("cgroup, sched_ext: Include exiting tasks in cgroup iter") did for sched_ext. With the fix, A is thawed and exits. This bug was identified and confirmed with the help of a deterministic hypervisor currently under development. The C reproducer below however hits it within about 10s. Fixes: a72f73c4dd9b ("cgroup: Don't expose dead tasks in cgroup") Cc: stable@vger.kernel.org # v7.1+ Signed-off-by: Mani Tofigh <mt4022@columbia.edu> Reviewed-by: Tao Cui <cuitao@kylinos.cn> Tested-by: Tao Cui <cuitao@kylinos.cn> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions