NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/57580: evbarm/earmv7hf RPI2 scheduler/cpu stall



The following reply was made to PR kern/57580; it has been noted by GNATS.

From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
To: Frank Kardel <kardel%netbsd.org@localhost>
Cc: gnats-bugs%NetBSD.org@localhost
Subject: Re: kern/57580: evbarm/earmv7hf RPI2 scheduler/cpu stall
Date: Sun, 13 Aug 2023 11:56:13 +0000

 > In this state "cpuctl offline 1" gets stuck waiting on "xclocv"
 > wait channel.
 
 This means it's waiting for a low-priority xcall(9) to complete on
 another CPU, presumably cpu1.  The xcall thread for cpu1 is here:
 
 PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
 0       28 2   1       200           914dd440            xcall/1
 
 S = 2 means LSRUN, meaning the process is runnable but not on the CPU.
 
 FLAGS = 0x200 means LW_SYSTEM, meaning this is a kernel thread, as
 expected -- this is the thread that handles low-priority xcalls.
 
 > So why is CPU 1 not running processes anymore?
 
 Not sure.  It appears to be here:
 
 PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
 4939 >4939 7   1   1000000           93f75200               perl
 
 S = 7 means LSONPROC, meaning the process is currently executing on
 the CPU.
 
 FLAGS = 0x1000000 means LW_PENDSIG, meaning a signal is pending.
 
 But what's the perl process doing and why can't it make progress?
 Unclear.
 
 Can you enter ddb in this state (not crash(8) -- use C-A-ESC in wskbd
 or break at serial console or (set and) type the hw.cnmagic sequence),
 and do `mach cpu 1', and then `bt'?  Once you get output, you can do
 `continue' to return from ddb.
 
 If not, can you try enabling `options HEARTBEAT' and `options
 HEARTBEAT_MAX_PERIOD=15' in our kernel config and see if you get any
 diagnostics out of that?
 


Home | Main Index | Thread Index | Old Index