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