Subject: Re: strange traps on i386
To: None <port-i386@netbsd.org>
From: David Young <dyoung@pobox.com>
List: port-i386
Date: 08/09/2007 18:36:18
Here is another trap, this time on an instruction boundary. Isn't it
an innocuous instruction, though?
I used to suspect that these traps were caused either by an asynchronous
notification of an error on the PCI bus, or by a PCI bus master scribbling
over the interrupt vector table, kernel text, et cetera.
Dave
***
# rtw0: tx fifo underflow
rtw0: tx fifo underflow
#
#
# kernel: supervisor trap double fault, code=0
Stopped in pid 1805.1 (hslsd) at netbsd:in_pcbdisconnect+0x4: subl $
0x4,%esp
db> bt
in_pcbdisconnect(c054c9a0,9,c0701900,c071ba00,0) at netbsd:in_pcbdisconnect+0x4
sosend(c054c9a0,c071ba00,c69e3b88,c0701900,0) at netbsd:sosend+0x425
do_sys_sendmsg(c6a40e00,5,c69e3bf8,0,c69e3c68) at netbsd:do_sys_sendmsg+0x250
sys_sendto(c6a40e00,c69e3c48,c69e3c68,0,bfbfb000) at netbsd:sys_sendto+0x54
syscall_plain() at netbsd:syscall_plain+0x10d
--- syscall (number 133) ---
0xbbb1b6e7:
db> show registers
ds 0x10
es 0x10
fs 0x30
gs 0x10
edi 0xc054dea0
esi 0xb1d8fea9
ebp 0xc69e3a9c
ebx 0
edx 0x8004c39
ecx 0x5
eax 0xc0701900
eip 0xc0125074 in_pcbdisconnect+0x4
cs 0x8
eflags 0x10282
esp 0xc0141a20 icmp6_input+0xac0
ss 0x10
netbsd:in_pcbdisconnect+0x4: subl $0x4,%esp
db> examine/i in_pcbdisconnect,100
netbsd:in_pcbdisconnect: pushl %ebp
netbsd:in_pcbdisconnect+0x1: movl %esp,%ebp
netbsd:in_pcbdisconnect+0x3: pushl %ebx
netbsd:in_pcbdisconnect+0x4: subl $0x4,%esp
netbsd:in_pcbdisconnect+0x7: movl 0x8(%ebp),%ebx
netbsd:in_pcbdisconnect+0xa: cmpl $0x2,0x18(%ebx)
netbsd:in_pcbdisconnect+0xe: jz netbsd:in_pcbdisconnect+0x20
netbsd:in_pcbdisconnect+0x10: movl 0xfffffffc(%ebp),%ebx
netbsd:in_pcbdisconnect+0x13: leave
netbsd:in_pcbdisconnect+0x14: ret
netbsd:in_pcbdisconnect+0x15: leal 0(%esi),%esi
netbsd:in_pcbdisconnect+0x19: leal 0(%edi),%edi
netbsd:in_pcbdisconnect+0x20: movl netbsd:zeroin_addr,%eax
netbsd:in_pcbdisconnect+0x25: movl %eax,0x58(%ebx)
netbsd:in_pcbdisconnect+0x28: movw $0,0x40(%ebx)
netbsd:in_pcbdisconnect+0x2e: pushl $0x1
netbsd:in_pcbdisconnect+0x30: pushl %ebx
netbsd:in_pcbdisconnect+0x31: call netbsd:in_pcbstate
netbsd:in_pcbdisconnect+0x36: movl 0x24(%ebx),%eax
netbsd:in_pcbdisconnect+0x39: popl %ecx
netbsd:in_pcbdisconnect+0x3a: popl %edx
netbsd:in_pcbdisconnect+0x3b: testb $0x1,0x6(%eax)
--db_more--
Dave
--
David Young OJC Technologies
dyoung@ojctech.com Urbana, IL * (217) 278-3933 ext 24