Subject: bizarre traps on i386
To: None <tech-kern@netbsd.org>
From: David Young <dyoung@pobox.com>
List: tech-kern
Date: 01/30/2007 03:47:57
I am seeing some hard-to-believe traps on a Soekris net4521 (AMD Elan
SC520 processor).  I have included two traps below.

Trap one: since when is movl %esi, %edx a privileged instruction?

kernel: supervisor trap privileged instruction fault, code=0
Stopped in pid 1866.1 (hslsd) at        netbsd:rtcache_free+0x53:       movl    %
esi,%edx
db> show registers
ds          0x10
es          0x10
fs          0x30
gs          0x10
edi         0xc7165a28
esi         0x5
ebp         0xc71659bc
ebx         0x5
edx         0xc0d4acfc
ecx         0x5
eax         0xc0307e20  __PRETTY_FUNCTION__.9038
eip         0xc029c783  rtcache_free+0x53
cs          0x8
eflags      0x10246
esp         0xc71659a4
ss          0x10
netbsd:rtcache_free+0x53:       movl    %esi,%edx
db> bt
rtcache_free(c7165a28,c0d5e700,c0d46d58,0,c0d1e340) at netbsd:rtcache_free+0x53
ip_output(c0d5e700,0,c0d46d54,0,c0ecdc80) at netbsd:ip_output+0x23b
udp_output(c0ef0500,c0d46d24,c682b818,c0d456c0,c0ef0500) at netbsd:udp_output+0x
155
udp_usrreq(c0d456c0,9,c0ef0500,c0d52e00,0) at netbsd:udp_usrreq+0x351
sosend(c0d456c0,c0d52e00,c7165b88,c0ef0500,0) at netbsd:sosend+0x401
sendit(c682b818,8,c7165bf8,0,c7165c68) at netbsd:sendit+0x1a2
sys_sendto(c682b818,c7165c48,c7165c68,0,c02b4650) at netbsd:sys_sendto+0x54
syscall_plain() at netbsd:syscall_plain+0x15a
--- syscall (number 133) ---
0xbbb3e83b:
db> 

Trap two: what leads to a page fault trap with vm_map != kernel_map on a
'jz' instruction (second trap)?

uvm_fault(0xc6828b60, 0, 2) -> 0xe
kernel: supervisor trap page fault, code=0
Stopped in pid 1869.1 (hslsd) at        netbsd:ip6_output+0xdf: jz      netbsd:i
p6_output+0x3b0
db> bt
ip6_output(c0f48600,0,c0d4abc4,0,c0d1e2e0) at netbsd:ip6_output+0xdf
udp6_output(c0d4ab94,c0f48600,c0d51000,0,c682b940) at netbsd:udp6_output+0x4a2
sosend(c0d45288,c0d51000,c7122b88,c0d53f00,0) at netbsd:sosend+0x401
sendit(c682b940,d,c7122bf8,4,c7122c68) at netbsd:sendit+0x1a2
sys_sendto(c682b940,c7122c48,c7122c68,0,8098000) at netbsd:sys_sendto+0x54
syscall_plain() at netbsd:syscall_plain+0x15a
--- syscall (number 133) ---
0xbbb3e83b:
db> show registers
ds          0x10
es          0x10
fs          0x30
gs          0x10
edi         0xc0dd003c
esi         0xc0d4abc4
ebp         0xc71229bc
ebx         0
edx         0x282
ecx         0xc0d4abc4
eax         0
eip         0xc015282f  ip6_output+0xdf
cs          0x8
eflags      0x10212
esp         0xc7122824
ss          0x10
netbsd:ip6_output+0xdf: jz      netbsd:ip6_output+0x3b0
db> print kernel_map
c03532a0

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933