Quote:
Originally Posted by jggimi
No, I meant two different cards have the same symptom.
Seems like backtracing in ddb is the way to go.
|
duh, sorry. well, the kernel doesn't panic. it's stuck in la la land. i broke into the debugger during the hang but just kind of wandered around aimlessly not knowing what i'm really looking for.
root@panic,0# ifconfig wi0
wi0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:02:6f:4a:d0:24
media: IEEE802.11 autoselect (none)
ieee80211: nwid IBSS chan 1 bssid 44:44:44:44:44:44 -8dBm (auto)
root@panic,0# ifconfig wi0 up
root@panic,0# Stopped at Debugger+0x4: leave
ddb>
Stopped at Debugger+0x4: leave
ddb> next
After 1 instructions (0 loads, 0 stores),
Stopped at Debugger+0x5: ret
ddb> next
After 88 instructions (0 loads, 0 stores),
Stopped at comintr+0x4b: ret
ddb> next
After 2708 instructions (0 loads, 0 stores),
Stopped at Xdoreti+0x7d: iret
ddb> next
After 6861969 instructions (0 loads, 0 stores),
Stopped at Debugger+0x5: ret
ddb> s
Stopped at comintr+0x9f: jmp comintr+0x58
ddb> s
Stopped at comintr+0x58: movl 0xffffffec(%ebp),%ebx
ddb> s
Stopped at comintr+0x5b: testl %ebx,%ebx
ddb> s
Stopped at comintr+0x5d: jnz comintr+0x280
ddb> s
Stopped at comintr+0x63: movl 0xffffffe8(%ebp),%edx
ddb> s
Stopped at comintr+0x66: addl $0x5,%edx
ddb> s
Stopped at comintr+0x69: inb %dx,%al
ddb> s
Stopped at comintr+0x6a: movb %al,0xffffffe7(%ebp)
ddb> s
Stopped at comintr+0x6d: testb $0x1f,0xffffffe7(%ebp)
ddb> s
Stopped at comintr+0x71: jz comintr+0xd4
ddb> s
Stopped at comintr+0xd4: movl 0xffffffec(%ebp),%eax
ddb> s
Stopped at comintr+0xd7: testl %eax,%eax
ddb> s
Stopped at comintr+0xd9: jnz comintr+0x274
ddb> s
Stopped at comintr+0xdf: movl 0xffffffe8(%ebp),%edx
ddb> s
Stopped at comintr+0xe2: addl $0x6,%edx
ddb> s
Stopped at comintr+0xe5: inb %dx,%al
ddb> s
Stopped at comintr+0xe6: movb %al,%bl
ddb> s
Stopped at comintr+0xe8: movl 0x8(%ebp),%ecx
ddb> s
Stopped at comintr+0xeb: movb 0x94(%ecx),%dl
ddb> s
Stopped at comintr+0xf1: movb %bl,%al
ddb> s
Stopped at comintr+0xf3: xorl %edx,%eax
ddb> s
Stopped at comintr+0xf5: movzbl %bl,%ecx
ddb> s
Stopped at comintr+0xf8: movl %eax,%esi
ddb> s
Stopped at comintr+0xfa: movl %ecx,%eax
ddb> s
Stopped at comintr+0xfc: subl $0xc,%esp
ddb> s
Stopped at comintr+0xff: andl $0x80,%eax
ddb> s
Stopped at comintr+0x104: movzbl %dl,%edx
ddb> s
Stopped at comintr+0x107: pushl %eax
ddb> s
Stopped at comintr+0x108: movl %edx,%eax
ddb> s
Stopped at comintr+0x10a: andl $0x80,%eax
ddb> s
Stopped at comintr+0x10f: pushl %eax
ddb> s
Stopped at comintr+0x110: andl $0x10,%ecx
ddb> s
Stopped at comintr+0x113: pushl %ecx
ddb> s
Stopped at comintr+0x114: andl $0x10,%edx
ddb> show registers
ds 0x10
es 0x10
fs 0x58
gs 0x10
edi 0x161
esi 0x300
ebp 0xde159e5c end+0xd8c0d88
ebx 0xb0
edx 0xb0
ecx 0x10
eax 0x80
eip 0xd05d1a74 comintr+0x114
cs 0x50
eflags 0x202
esp 0xde159e1c end+0xd8c0d48
ss 0xde150010 end+0xd8b6f3c
comintr+0x114: andl $0x10,%edx
ddb> match
After 54 instructions (0 loads, 0 stores),
Stopped at comintr+0x4b: ret
ddb> match
After 2780 instructions (0 loads, 0 stores),
Stopped at Xdoreti+0x7d: iret
ddb> match
After 656 instructions (0 loads, 0 stores),
Stopped at alltraps+0x79: iret
ddb> match
After 21 instructions (0 loads, 0 stores),
Stopped at kdb_trap+0x37: ret
ddb> match
uvm_fault(0xd07e9980, 0x0, 0, 1) -> e
kernel: page fault trap, code=0
uvm_fault(0xd07e9980, 0x0, 0, 1) -> e
kernel: page fault trap, code=0
uvm_fault(0xd07e9980, 0x0, 0, 1) -> e
kernel: page fault trap, code=0
uvm_fault(0xd07e9980, 0x0, 0, 1) -> e
ad nauseum.