sis0: + top + panic in bus_dmamap_load

Bjoern A. Zeeb bzeeb-lists at
Wed Aug 3 17:10:15 GMT 2005


while testing ipfw patches hammering an interface with
invalid tcp over ipv6 packets I got following:

sis0: discard frame w/o packet header
sis0: discard frame w/o packet header
sis0: discard frame w/o packet header
sis0: discard frame w/o packet header
sis0: discard frame w/o packet header
sis0: discard frame w/o packet header

and somewhen later I got a panic I haven't been able to
reproduce after the reset.

At the time the panic happend a newly started top did
it's first refresh cycle. I hadn't started top before.

Here's all I have:

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0xbfcb5214
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc0652f68
stack pointer           = 0x28:0xc98aec10
frame pointer           = 0x28:0xc98aec60
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 20 (irq10: sis0 sis1+)
[thread pid 20 tid 100013 ]
Stopped at      bus_dmamap_load+0x308:  movl    PTmap(,%eax,4),%edx
db> where
Tracing pid 20 tid 100013 td 0xc4ad7000
bus_dmamap_load(c4affc80,0,2d485353,800,c05fae90,c4b333a8,0,c4affc80,0,c4b333bc) at bus_dmamap_load+0x308
sis_newbuf(c4b30700,c4b333a8,0) at sis_newbuf+0x8a
sis_rxeof(c4b30700) at sis_rxeof+0xbc
sis_intr(c4b30700) at sis_intr+0xab
ithread_loop(c4ac2800,c98aed38) at ithread_loop+0x149
fork_exit(c04d6fb0,c4ac2800,c98aed38) at fork_exit+0x6f
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xc98aed6c, ebp = 0 ---

(gdb) l *0xc0652f68
0xc0652f68 is in bus_dmamap_load (pmap.h:201).
197             if ((pa = PTD[va >> PDRSHIFT]) & PG_PS) {
198                     pa = (pa & ~(NBPDR - 1)) | (va & (NBPDR - 1));
199             } else {
200                     pa = *vtopte(va);
201                     pa = (pa & PG_FRAME) | (va & PAGE_MASK);
202             }
203             return pa;
204     }

db> show registers
cs          0xc98a0020
ds          0xc4ad0028
es                0x28
fs          0xc98a0008
ss                0x28
eax            0x2d485
ecx         0x2d485353
edx                  0
ebx         0xc4df5300
esp         0xc98aec10
ebp         0xc98aec60
esi         0xc4b333a8
edi         0xc4b30700
eip         0xc0652f68  bus_dmamap_load+0x308
efl            0x10202
dr0                  0
dr1                  0
dr2                  0
dr3                  0
dr4         0xffff0ff0
dr5              0x400
dr6         0xffff0ff0
dr7              0x400
bus_dmamap_load+0x308:  movl    PTmap(,%eax,4),%edx
db> show threads
  100038 (0xc4b43a80)  sched_switch(c4b43a80,0,1) at sched_switch+0x15b
  100070 (0xc4e65780)  sched_switch(c4e65780,0,1) at sched_switch+0x15b
  100066 (0xc4e65d80)  sched_switch(c4e65d80,0,1) at sched_switch+0x15b
  100064 (0xc4bcd000)  sched_switch(c4bcd000,0,2) at sched_switch+0x15b
  100053 (0xc4bce180)  sched_switch(c4bce180,0,1) at sched_switch+0x15b
  100056 (0xc4bcdc00)  sched_switch(c4bcdc00,0,1) at sched_switch+0x15b
  100050 (0xc4bce600)  sched_switch(c4bce600,0,1) at sched_switch+0x15b
  100057 (0xc4bcda80)  sched_switch(c4bcda80,0,1) at sched_switch+0x15b
  100058 (0xc4bcd900)  sched_switch(c4bcd900,0,1) at sched_switch+0x15b
  100051 (0xc4bce480)  sched_switch(c4bce480,0,1) at sched_switch+0x15b
  100059 (0xc4bcd780)  sched_switch(c4bcd780,0,1) at sched_switch+0x15b
  100040 (0xc4b43780)  sched_switch(c4b43780,0,1) at sched_switch+0x15b
  100060 (0xc4bcd600)  sched_switch(c4bcd600,0,1) at sched_switch+0x15b
  100055 (0xc4bcdd80)  sched_switch(c4bcdd80,0,1) at sched_switch+0x15b
  100043 (0xc4b43300)  sched_switch(c4b43300,0,1) at sched_switch+0x15b
  100044 (0xc4b43180)  sched_switch(c4b43180,0,1) at sched_switch+0x15b
  100045 (0xc4b43000)  sched_switch(c4b43000,0,1) at sched_switch+0x15b
  100046 (0xc4af7d80)  sched_switch(c4af7d80,0,1) at sched_switch+0x15b
  100047 (0xc4af7c00)  sched_switch(c4af7c00,0,1) at sched_switch+0x15b
  100048 (0xc4af7a80)  sched_switch(c4af7a80,0,1) at sched_switch+0x15b
  100049 (0xc4af7900)  sched_switch(c4af7900,0,1) at sched_switch+0x15b
  100027 (0xc4af7180)  sched_switch(c4af7180,0,1) at sched_switch+0x15b
  100028 (0xc4af7000)  sched_switch(c4af7000,0,1) at sched_switch+0x15b
  100029 (0xc4ad7d80)  sched_switch(c4ad7d80,0,1) at sched_switch+0x15b
  100030 (0xc4ad7c00)  sched_switch(c4ad7c00,0,1) at sched_switch+0x15b
  100031 (0xc4ad7a80)  sched_switch(c4ad7a80,0,1) at sched_switch+0x15b
  100032 (0xc4ad7900)  sched_switch(c4ad7900,0,1) at sched_switch+0x15b
  100033 (0xc4ad7780)  sched_switch(c4ad7780,0,1) at sched_switch+0x15b
  100034 (0xc4ad7600)  sched_switch(c4ad7600,0,1) at sched_switch+0x15b
  100035 (0xc4ad7480)  fork_trampoline() at fork_trampoline
  100036 (0xc4b43d80)  sched_switch(c4b43d80,0,1) at sched_switch+0x15b
  100037 (0xc4b43c00)  fork_trampoline() at fork_trampoline
  100017 (0xc4ad1900)  sched_switch(c4ad1900,0,1) at sched_switch+0x15b
  100018 (0xc4ad1780)  fork_trampoline() at fork_trampoline
  100019 (0xc4ad1600)  sched_switch(c4ad1600,0,1) at sched_switch+0x15b
  100020 (0xc4ad1480)  sched_switch(c4ad1480,0,1) at sched_switch+0x15b
  100021 (0xc4ad1300)  sched_switch(c4ad1300,0,1) at sched_switch+0x15b
  100022 (0xc4ad1180)  sched_switch(c4ad1180,0,1) at sched_switch+0x15b
  100023 (0xc4af7780)  sched_switch(c4af7780,0,1) at sched_switch+0x15b
  100024 (0xc4af7600)  sched_switch(c4af7600,0,1) at sched_switch+0x15b
  100025 (0xc4af7480)  fork_trampoline() at fork_trampoline
  100026 (0xc4af7300)  sched_switch(c4af7300,0,1) at sched_switch+0x15b
  100008 (0xc4ad0300)  fork_trampoline() at fork_trampoline
  100009 (0xc4ad0180)  sched_switch(c4ad0180,0,1) at sched_switch+0x15b
  100010 (0xc4ad0000)  fork_trampoline() at fork_trampoline
  100011 (0xc4ad7300)  fork_trampoline() at fork_trampoline
  100012 (0xc4ad7180)  fork_trampoline() at fork_trampoline
  100013 (0xc4ad7000)  bus_dmamap_load(c4affc80,0,2d485353,800,c05fae90,c4b333a8,0,c4affc80,0,c4b333bc) at bus_dmamap_load+0x308
  100014 (0xc4ad1d80)  fork_trampoline() at fork_trampoline
  100015 (0xc4ad1c00)  fork_trampoline() at fork_trampoline
  100016 (0xc4ad1a80)  fork_trampoline() at fork_trampoline
  100000 (0xc4ad1000)  fork_trampoline() at fork_trampoline
  100001 (0xc4ad0d80)  fork_trampoline() at fork_trampoline
  100002 (0xc4ad0c00)  fork_trampoline() at fork_trampoline
  100003 (0xc4ad0a80)  fork_trampoline() at fork_trampoline
  100004 (0xc4ad0900)  fork_trampoline() at fork_trampoline
  100005 (0xc4ad0780)  fork_trampoline() at fork_trampoline
  100006 (0xc4ad0600)  sched_switch(c4ad0600,0,1) at sched_switch+0x15b
  100007 (0xc4ad0480)  sched_switch(c4ad0480,0,1) at sched_switch+0x15b
       0 (0xc06dfe20)  sched_switch(c06dfe20,0,1) at sched_switch+0x15b

Bjoern A. Zeeb				bzeeb at Zabbadoz dot NeT

More information about the freebsd-current mailing list