Current-Users archive

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

Re: NetBSD xen dom0 kernel panic

Christos Zoulas wrote:
On Mar 17,  1:54pm, (Frank) wrote:
-- Subject: Re: NetBSD xen dom0 kernel panic

| Christos Zoulas wrote:
| > In article <>, Frank  
<> wrote:
| > | >> A few times my test NetBSD server running NetBSD 5.0_RC2 (amd64) | >> suddenly crashed. (every 2-3 days)
| >>
| >> At the moment of the crash dmesg is:
| >>
| >> | >
| > A LOCKDEBUG kernel will give you more information.
| >
| > christos
| >
| > | Ok, I'll build a kernel with that option. Are there any other things | which could be helpfull on debugging this?

I usually build testing kernels with DIAGNOSTIC+DEBUG+LOCKDEBUG. I think
that the problem you are seeing is a recursive lock that would result in
deadlock (or unlocking and unlocked lock). The LOCKDEBUG kernel should
point out where the lock is currently held from (or where it was last
held and released). There are ddb commands to examine the locks, but
I don't remember them off hand right now.


I booted up a kernel with the LOCKDEBUG option on. It paniced during boot. Output:

Mutex error: lockdebug_wantlock: acquiring sleep lock from interrupt context

lock address : 0xffffffff80b20130 type     :     sleep/adaptive
initialized  : 0xffffffff8043c60b
shared holds :                  0 exclusive:                  0
shares wanted:                  0 exclusive:                  0
current cpu  :                  0 last held:                  0
current lwp  : 0xffffa0002a3cbba0 last held: 000000000000000000
last locked  : 0xffffffff8043b4ef unlocked : 0xffffffff8043b78c
owner field  : 000000000000000000 wait/spin:                0/0

Turnstile chain at 0xffffffff80b3c2c0.
=> No active turnstile for this lock.

fatal breakpoint trap in supervisor mode
trap type 1 code 0 rip ffffffff804d64cd cs e030 rflags 246 cr2 7f7fffffcff8 cpl 6 rsp ffffa0002a403158
Stopped in pid 334.1 (arp) at   netbsd:breakpoint+0x5:  leave
breakpoint() at netbsd:breakpoint+0x5
panic() at netbsd:panic+0x242
lockdebug_abort1() at netbsd:lockdebug_abort1+0xd3
mutex_vector_enter() at netbsd:mutex_vector_enter+0x17f
pool_get() at netbsd:pool_get+0x4f
pf_test_rule() at netbsd:pf_test_rule+0xaf9
pf_test() at netbsd:pf_test+0xc96
pfil4_wrapper() at netbsd:pfil4_wrapper+0x57
pfil_run_hooks() at netbsd:pfil_run_hooks+0xa0
bridge_ipf() at netbsd:bridge_ipf+0x239
pfil_run_hooks() at netbsd:pfil_run_hooks+0xa0
bridge_forward() at netbsd:bridge_forward+0xbd
bridge_input() at netbsd:bridge_input+0x14b
ether_input() at netbsd:ether_input+0x123
wm_intr() at netbsd:wm_intr+0x3c0
Xresume_xenev6() at netbsd:Xresume_xenev6+0x55
--- interrupt ---
Xspllower() at netbsd:Xspllower+0xe
cnwrite() at netbsd:cnwrite+0x45
spec_write() at netbsd:spec_write+0xa4
VOP_WRITE() at netbsd:VOP_WRITE+0x2d
vn_write() at netbsd:vn_write+0xce
dofilewrite() at netbsd:dofilewrite+0x7f
sys_write() at netbsd:sys_write+0x72
syscall() at netbsd:syscall+0xb4
ds          0xe02b
es          0xe02b
fs          0x3118
gs          0x203
rdi         0
rsi         0x1
rbp         0xffffa0002a403158
rbx         0xffffa0002a403168
rdx         0
rcx         0
rax         0x1
r8          0xffffa0002a403078
r9          0x1
r10         0xffffa0002a403078
r11         0xffffffff805138b0  xenconscn_putc
r12         0x104
r13         0xffffffff808276fd  copyright+0x18e9d
r14         0x6
r15         0x1
rip         0xffffffff804d64cd  breakpoint+0x5
cs          0xe030
rflags      0x246
rsp         0xffffa0002a403158
ss          0xe02b
netbsd:breakpoint+0x5:  leave

Home | Main Index | Thread Index | Old Index