I've seen this (double) page fault happen every now and then for quite some time, so I don't think this is new. panic happens when lots of interrupts are happening, not necessarily on the wi0 interface. Anyone know what's going on here? 4.9-STABLE from a couple of weeks ago. -Paul. Fatal trap 12: page fault while in kernel mode fault virtual address = 0x30 fault code = supervisor read, page not present instruction pointer = 0x8:0xc035ff60 stack pointer = 0x10:0xc04729f8 frame pointer = 0x10:0xc0472a00 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 = Idle interrupt mask = net tty bio cam trap number = 12 panic: page fault [...] (kgdb) bt #0 dumpsys () at /u01/src/sys/kern/kern_shutdown.c:487 #1 0xc023d05b in boot (howto=260) at /u01/src/sys/kern/kern_shutdown.c:316 #2 0xc023d499 in panic (fmt=0xc046962c "%s") at /u01/src/sys/kern/kern_shutdown.c:595 #3 0xc03d2ffb in trap_fatal (frame=0xc04729b8, eva=48) at /u01/src/sys/i386/i386/trap.c:974 #4 0xc03d2ca9 in trap_pfault (frame=0xc04729b8, usermode=0, eva=48) at /u01/src/sys/i386/i386/trap.c:867 #5 0xc03d284f in trap (frame={tf_fs = -1071251440, tf_es = 6750224, tf_ds = -1069088752, tf_edi = 0, tf_esi = -1056606464, tf_ebp = -1069078016, tf_isp = -1069078044, tf_ebx = -1068836260, tf_edx = 6867008, tf_ecx = -860387712, tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip = -1070203040, tf_cs = 8, tf_eflags = 66050, tf_esp = -1056606464, tf_ss = -1056606464}) at /u01/src/sys/i386/i386/trap.c:466 #6 0xc035ff60 in acquire_lock (lk=0xc04ada5c) at /u01/src/sys/ufs/ffs/ffs_softdep.c:266 #7 0xc0364060 in softdep_update_inodeblock (ip=0xc1057700, bp=0xc37bbe04, waitfor=0) at /u01/src/sys/ufs/ffs/ffs_softdep.c:3813 #8 0xc035f095 in ffs_update (vp=0xccb78680, waitfor=0) at /u01/src/sys/ufs/ffs/ffs_inode.c:106 #9 0xc03674de in ffs_sync (mp=0xc0ff3200, waitfor=2, cred=0xc0b2c880, p=0xc04f4620) at /u01/src/sys/ufs/ffs/ffs_vfsops.c:1025 #10 0xc026ddf7 in sync (p=0xc04f4620, uap=0x0) at /u01/src/sys/kern/vfs_syscalls.c:577 #11 0xc023cdf6 in boot (howto=256) at /u01/src/sys/kern/kern_shutdown.c:235 #12 0xc023d499 in panic (fmt=0xc046962c "%s") at /u01/src/sys/kern/kern_shutdown.c:595 #13 0xc03d2ffb in trap_fatal (frame=0xc0472b90, eva=12) at /u01/src/sys/i386/i386/trap.c:974 #14 0xc03d2ca9 in trap_pfault (frame=0xc0472b90, usermode=0, eva=12) at /u01/src/sys/i386/i386/trap.c:867 #15 0xc03d284f in trap (frame={tf_fs = -1055850480, tf_es = 16, tf_ds = 999948304, tf_edi = -7, tf_esi = 0, tf_ebp = -1069077540, tf_isp = -1069077572, tf_ebx = -1062000640, tf_edx = 1, tf_ecx = 0, tf_eax = 7, tf_trapno = 12, tf_err = 0, tf_eip = -1071276043, tf_cs = 8, tf_eflags = 66050, tf_esp = -1062000640, tf_ss = -1057378304}) at /u01/src/sys/i386/i386/trap.c:466 #16 0xc0259ff5 in m_copydata (m=0xc0b35900, off=14, len=-7, cp=0xc0f9b1f6 "% G\223") at /u01/src/sys/kern/uipc_mbuf.c:984 #17 0xc0218f9b in wi_start (ifp=0xc0f9b000) at /u01/src/sys/dev/wi/if_wi.c:2319 #18 0xc021b6e7 in wihap_data_input (sc=0xc0f9b000, rxfrm=0xc0472cb4, m=0xc0b31100) at /u01/src/sys/net/if_var.h:289 #19 0xc0216361 in wi_rxeof (sc=0xc0f9b000) at /u01/src/sys/dev/wi/if_wi.c:799 #20 0xc021665a in wi_intr (xsc=0xc0f9b000) at /u01/src/sys/dev/wi/if_wi.c:935 #21 0xc023b23e in add_interrupt_randomness (vsc=0xc04f34e4) at /u01/src/sys/kern/kern_random.c:247 #22 0xc03c9ed6 in cpu_idle () at /u01/src/sys/i386/i386/machdep.c:1000 (kgdb) up 16 #16 0xc0259ff5 in m_copydata (m=0xc0b35900, off=14, len=-7, cp=0xc0f9b1f6 "%?G\223") at /u01/src/sys/kern/uipc_mbuf.c:984 984 } (kgdb) list 979 KASSERT(m != NULL, ("m_copydata, offset > size of mbuf chain")); 980 if (off < m->m_len) 981 break; 982 off -= m->m_len; 983 m = m->m_next; 984 } 985 while (len > 0) { 986 KASSERT(m != NULL, ("m_copydata, length > size of mbuf chain")); 987 count = min(m->m_len - off, len); 988 bcopy(mtod(m, caddr_t) + off, cp, count); (kgdb) print m $1 = (struct mbuf *) 0x0 (kgdb) up #17 0xc0218f9b in wi_start (ifp=0xc0f9b000) at /u01/src/sys/dev/wi/if_wi.c:2319 2319 m_copydata(m0, sizeof(struct ether_header), (kgdb) list 2314 tx_frame.wi_type = eh->ether_type; 2315 2316 if (sc->wi_ptype == WI_PORTTYPE_AP && sc->wi_use_wep) { 2317 /* Do host encryption. */ 2318 bcopy(&tx_frame.wi_dat[0], &sc->wi_txbuf[4], 8); 2319 m_copydata(m0, sizeof(struct ether_header), 2320 m0->m_pkthdr.len - sizeof(struct ether_header), 2321 (caddr_t)&sc->wi_txbuf[12]); 2322 wi_do_hostencrypt(sc, &sc->wi_txbuf[0], 2323 tx_frame.wi_dat_len); (kgdb) print *m0 $2 = {m_hdr = {mh_next = 0x0, mh_nextpkt = 0x0, mh_data = 0xc0b32800 "\001", mh_len = 7, mh_type = 1, mh_flags = 515}, M_dat = { MH = {MH_pkthdr = {rcvif = 0xc0f9b000, len = 7, header = 0x0, csum_flags = 0, csum_data = 3, tags = {slh_first = 0x0}}, MH_dat = {MH_ext = {ext_buf = 0xc0b32800 "\001", ext_free = ?0, ext_size = 2048, ext_ref = 0}, MH_databuf = "\000(?\000\000\000\000\000\b\000\000\000\000\000\000E\000\005?<\225 [...]