Re: Kernel panic in __migrate_swap_task() under stress-ng

From: Abhigyan ghosh
Date: Thu Jun 19 2025 - 01:14:24 EST




Hi Jirka,

Thanks again for the detailed logs and clarification.

Based on your trace and timing (often crashing around test 30+ out of 41, after long runtime), I suspect it could be a use-after-free or delayed wake-up race in the CPU stopper thread handling.

In particular, I noticed:

The RIP __migrate_swap_task+0x2f attempts to dereference +0x4c8 from a NULL task_struct pointer.

That offset is near task->se.cfs_rq or task->sched_info on some architectures — which makes me wonder if the task was already de-queued from its CPU’s rq during swap or sem cleanup.

Since stress-ng uses short timed sem/fork loops with varying threads, maybe the task was migrated mid-finalization?


As an experiment, I’ll try:

Looping stress-ng --sem --taskset 0-15

Watching perf top and tracing with ftrace on migrate_swap_stop and task_rq_lock


Let’s see if I can narrow it down further. If I get a hit, I’ll share the trace.

Thanks again —
Best regards,
Abhigyan Ghosh
zsml.zscript.org

aghosh