Port-sparc64 archive

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

smp panic: kernel diagnostic assertion "l->l_cpu == ci" failed



Hi everyone.

I've been running a SMP kernel for a couple of weeks on my E450.
All but one CPU disabled with cpuctl(8), and it's been stable.
Enabling the additional two CPUs makes the machine fall over within a
minute when doing build.sh -j3.

This is with DIAGNOSTIC+LOCKDEBUG. A plain GENERIC.MP seems to
deadlock instead of panicing.

panic: kernel diagnostic assertion "l->l_cpu == ci" failed: file
"/co/src/sys/kern/kern_synch.c", line 779 Stopped in pid 757.1 (nbmake)
at        netbsd:cpu_Debugger+0x4:        nop

db{0}> bt
__kernassert(16730e8, 16b0ef8, 30b, 16b1030, 289d8000, 2b27ba90) at
netbsd:__kernassert+0x2c
mi_switch(2b039be0, 16b0ef8, 151, 16ae860, 1c14000, 3eaa000) at
netbsd:mi_switch+0x624
preempt(2b039be0, 0, 1e44, 0, 5d, 0) at netbsd:preempt+0xa0
trap(2af91ed0, fffffffffffffffe, 40304934, 820092, 146b960, 0) at
netbsd:trap+0x790
?(16, a0142000, ffffffffffffb588, 0, 0, ff0000) at 0x1008b64
db{0}> mach cpu 1

===

db{1}> bt
biowait(449ed10, 0, 0, 2b2dedb0, 2b2dedd8, 1000000) at netbsd:biowait
+0x24 genfs_getpages(2b2deea8, 2b2ded28, 0, 1, 0, 2b2ded28) at
netbsd:genfs_getpages+0 xda4
VOP_GETPAGES(2c1bd520, 0, 2b2df080, 2b2df0ac, 0, 1) at
netbsd:VOP_GETPAGES+0x84 uvn_get(0, 0, 2b2df080, 2b2df0ac, 0, 1) at
netbsd:uvn_get+0xd4 ubc_fault(2b2df2b8, 2925a000, 0, 1, 2b2df2b8, 2) at
netbsd:ubc_fault+0x170 uvm_fault_internal(1, 2925a000, 1, 7, 2b2df238,
1) at netbsd:uvm_fault_internal+ 0x9d0
data_access_fault(2b2df4e0, 30, 100a1fc, 2925a000, 2925a000, 400) at
netbsd:data _access_fault+0xd0
?(2925a000, 40834020, a7, 2b2dc000, 100a294, 80000000779da034) at
0x1008708 copyout_vmspace(2ad17e60, 2925a000, 40834020, af, 2,
28b1c000) at netbsd:copyout _vmspace+0x5c
uiomove(2925a000, af, 2b2dfbf0, 0, 101, 2b2df7c8) at netbsd:uiomove+0x84
ubc_uiomove(0, 2b2dfbf0, af, 0, 101, 8000) at netbsd:ubc_uiomove+0xd8
ffs_read(0, 10001, 40802080, 2b2dfa48, 11f7f8, 2c1bd520) at
netbsd:ffs_read+0x37 0
VOP_READ(2c1bd520, 2b2dfbf0, 0, 25b8b080, 0, 626173656e616d65) at
netbsd:VOP_REA D+0x6c
vn_read(2b5eba00, 2b5eba00, 2b2dfbf0, 25b8b080, 1, 40800104) at
netbsd:vn_read+0 x88
dofileread(16, 2b5eba00, 40834020, 7fc0, c, 1) at netbsd:dofileread+0x60
sys_read(c, 2b2dfdc0, 2b2dfe00, fffffffffffedd58, 0, 626173656e616d65)
at netbsd :sys_read+0x60
syscall_plain(2b2dfed0, 3, 4053c5a4, 2b2dfdc0, 6, 4053c5a4) at
netbsd:syscall_pl ain+0x10c
?(c, 40834020, 7fc0, fefefefefefefeff, ffffffffffffffff, 40834000) at
0x1008cc0 db{1}> mach cpu 2

===

db{2}> bt
fork1(2ac24520, 3, 14, 0, 1, 25b87cc0) at netbsd:fork1+0x5f0
sys___vfork14(2ac24520, 2ad57dc0, 2ad57e00, 1, 2220a0, 0) at
netbsd:sys___vfork1 4+0x24
syscall_plain(2ad57ed0, 0, 40540210, 2ad57dc0, 8, 40540210) at
netbsd:syscall_pl ain+0x10c
?(ffffffffffffaa00, 0, 3, 4083ea40, ffffffffffff9ea0, 0) at 0x1008cc0
db{2}>


Home | Main Index | Thread Index | Old Index