Re: Stalls when starting a VSOCK listening socket: soft lockups, RCU stalls, timeout

Thomas Gleixner
2026-03-05T16:16:48Z

On Thu, Mar 05 2026 at 13:20, Jiri Slaby wrote:
> On 05. 03. 26, 12:53, Jiri Slaby wrote:
>> owner_cpu is 1, owner is:
>> PID: 7508     TASK: ffff8cc4038b8000  CPU: 1    COMMAND: "compile"
>>
>> But as you can see above, CPU1 is occupied with a different task:
>> crash> bt -sxc 1
>> PID: 7680     TASK: ffff8cc4038525c0  CPU: 1    COMMAND: "asm"
>>
>> spinning in mm_get_cid() as I wrote. See the objdump of mm_get_cid below.
>
> You might be interested in mm_cid dumps:
>
> ====== PID 7508 (sleeping, holding the rq lock) ======
>
> crash> task -R mm_cid -x 7508
> PID: 7508 TASK: ffff8cc4038b8000 CPU: 1 COMMAND: "compile"
> mm_cid = {
> active = 0x1,
> cid = 0x40000003

CID 3 owned by CPU 1

> },
>
> crash> p ((struct task_struct *)(0xffff8cc4038b8000))->mm->mm_cid|head -4
> $6 = {
> pcpu = 0x66222619df40,
> mode = 1073741824,

mode = per CPU mode

> max_cids = 4,
>
>
> ====== PID 7680 (spinning in mm_get_cid()) ======
>
> crash> task -R mm_cid -x 7680
> PID: 7680 TASK: ffff8cc4038525c0 CPU: 1 COMMAND: "asm"
> mm_cid = {
> active = 0x1,
> cid = 0x80000000

CID is unset

> },
>
> crash> p ((struct task_struct *)(0xffff8cc4038b8000))->mm->mm_cid|head -4
> $8 = {
> pcpu = 0x66222619df40,
> mode = 1073741824,

That's per CPU mode too

> max_cids = 4,
>
>
> ====== per-cpu for CPU1 ======
>
> crash> struct mm_cid_pcpu -x fffff2e9bfc89f40
> struct mm_cid_pcpu {
> cid = 0x40000003

That's the one owned by CPU 1

> }
>
> Dump of any other's mm_cids needed?

It would be helpful to see the content of all PCPU CIDs and
tsk::mm_cid::* for all tasks which belong to that process.

Thanks,

tglx