Christos Zoulas wrote:
On Mar 17, 1:54pm, netbsd%searchy.net@localhost (Frank) wrote: -- Subject: Re: NetBSD xen dom0 kernel panic | Christos Zoulas wrote: | > In article <49BF92B2.7020005%searchy.net@localhost>, Frank <netbsd%searchy.net@localhost> 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. christos
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. panic: LOCKDEBUG fatal breakpoint trap in supervisor modetrap 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