Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: panic: kernel diagnostic assertion "l == curlwp"
Looks like I hit another one on this path with your latest fix in place:
[ 3737.4034537] panic: kernel diagnostic assertion "l == curlwp || ((l->l_flag & LW_SYSTEM) && pcu_valid == 0)" failed: file "/home/source/ab/HEAD/src/sys/kern/subr_pcu.c", line 133
[ 3737.4134523] cpu18: Begin traceback...
[ 3737.4234525] trace fp ffffc0086cad0c50
[ 3737.4234525] fp ffffc0086cad0c70 vpanic() at ffffc000004b230c netbsd:vpanic+0x15c
[ 3737.4334526] fp ffffc0086cad0ce0 kern_assert() at ffffc000007d052c netbsd:kern_assert+0x5c
[ 3737.4434535] fp ffffc0086cad0d70 pcu_discard_all() at ffffc000004a9a58 netbsd:pcu_discard_all+0x58
[ 3737.4534583] fp ffffc0086cad0d90 lwp_exit() at ffffc00000461558 netbsd:lwp_exit+0x1b0
[ 3737.4534583] fp ffffc0086cad0dd0 sys__lwp_create() at ffffc000004c4ed8 netbsd:sys__lwp_create+0xe8
[ 3737.4634613] fp ffffc0086cad0e20 syscall() at ffffc0000008a624 netbsd:syscall+0x18c
[ 3737.4734599] tf ffffc0086cad0ed0 el0_trap() at ffffc00000088c34 netbsd:el0_trap
[ 3737.4834609] ---- trapframe 0xffffc0086cad0ed0 (304 bytes) ----
[ 3737.4834609] pc=0000fdbd319c8958, spsr=0000000020000000
[ 3737.4934603] esr=0000000056000135, far=0000fdbd319eb030
[ 3737.4934603] x0=0000ffffffbc41c0, x1=0000fdbd31db2260
[ 3737.5034629] x2=0000fdbd31d8e200, x3=0000000000000000
[ 3737.5134632] x4=0000ffffffbc4190, x5=0000000000000030
[ 3737.5134632] x6=0000ffffffbc41c0, x7=0000fdbd31af0208
[ 3737.5234664] x8=0000000000000001, x9=0000000000001003
[ 3737.5234664] x10=000000000000000c, x11=0000000000000001
[ 3737.5334641] x12=0000fdbd31da5c18, x13=0000000000000000
[ 3737.5334641] x14=0000000000000000, x15=0000fdbd31400980
[ 3737.5434637] x16=0000fdbd31da22e0, x17=0000fdbd319c8954
[ 3737.5534632] x18=0000000000000001, x19=0000ffffffbc41c0
[ 3737.5534632] x20=0000ffffec172e60, x21=0000000000000002
[ 3737.5634733] x22=0000fdbd31db2260, x23=0000fdbd31d8e200
[ 3737.5634733] x24=0000ffffec172000, x25=0000ffffffbc4190
[ 3737.5734687] x26=0000ffffec1732a8, x27=0000ffffec173070
[ 3737.5734687] x28=0000fdbd31db3400, fp=x29=0000ffffffbc41d0
[ 3737.5834824] lr=x30=0000fdbd31d8e224, sp=0000ffffffbc40e0
[ 3737.5934691] ------------------------------------------------
[ 3737.5934691] cpu18: End traceback...
Stopped in pid 14611.14611 (conftest) at netbsd:cpu_Debugger+0x4:ret
db{18}>
On Mon, 1 Jun 2020, Jason Thorpe wrote:
On Jun 1, 2020, at 6:36 AM, Kamil Rytarowski <kamil%netbsd.org@localhost> wrote:
lwp_exit() used to work for curlwp and !curlwp.
There is a regression that there was introduced code called from
lwp_exit() calling lwp_thread_cleanup(l) that asserts curlwp,
effectively enforcing lwp_exit() to be operational for curlwp only.
I just reviewed the entire code path below that assertion again, and nothing in the current incarnation of the code relies on l == curlwp. I've removed the assertion just now.
-- thorpej
Home |
Main Index |
Thread Index |
Old Index