Panic in RELENG_7_1 with fxp(4)

Brandon Weisz lists at avioc.org
Sun Jan 4 01:33:24 UTC 2009


After running 7-PRERELEASE from around November 25th, I upgraded today 
to find the system panics repeatably on RELENG_7_1 sources.  I can boot 
back to the old kernel and it operates as expected.  It seems to be 
related to fxp(4).

FreeBSD didy.internal 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Sat Jan  3
18:11:18 CST 2009     bweisz at didy.internal:/usr/obj/usr/src/sys/DIDY  i386

(19:00:35 bweisz at didy </usr/obj/usr/src/sys/DIDY>) 507 $ sudo kgdb 
kernel.debug /var/crash/vmcore.2
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...

Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address	= 0x40c
fault code		= supervisor read, page not present
instruction pointer	= 0x20:0xc0a94510
stack pointer	        = 0x28:0xe677b878
frame pointer	        = 0x28:0xe677b88c
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		= 843 (ntpd)
trap number		= 12
panic: page fault
cpuid = 0
Uptime: 25s
Physical memory: 995 MB
Dumping 94 MB: 79 63 47 31 15

Reading symbols from /boot/kernel/vesa.ko...Reading symbols from 
/boot/kernel/vesa.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/vesa.ko
Reading symbols from /boot/kernel/accf_http.ko...Reading symbols from 
/boot/kernel/accf_http.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/accf_http.ko
Reading symbols from /boot/kernel/acpi.ko...Reading symbols from 
/boot/kernel/acpi.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi.ko
Reading symbols from /boot/kernel/pflog.ko...Reading symbols from 
/boot/kernel/pflog.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/pflog.ko
Reading symbols from /boot/kernel/pf.ko...Reading symbols from 
/boot/kernel/pf.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/pf.ko
Reading symbols from /boot/kernel/nullfs.ko...Reading symbols from 
/boot/kernel/nullfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/nullfs.ko
Reading symbols from /boot/kernel/logo_saver.ko...Reading symbols from 
/boot/kernel/logo_saver.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/logo_saver.ko
#0  doadump () at pcpu.h:196
196		__asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) list *0xc0a94510
0xc0a94510 is in _bus_dmamap_sync 
(/usr/src/sys/i386/i386/busdma_machdep.c:935).
930			CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x op 0x%x "
931			    "performing bounce", __func__, op, dmat, dmat->flags);
932	
933			if (op & BUS_DMASYNC_PREWRITE) {
934				while (bpage != NULL) {
935					bcopy((void *)bpage->datavaddr,
936					      (void *)bpage->vaddr,
937					      bpage->datacount);
938					bpage = STAILQ_NEXT(bpage, links);
939				}
(kgdb) bt
#0  doadump () at pcpu.h:196
#1  0xc079c1b7 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418
#2  0xc079c489 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:574
#3  0xc0ab03bc in trap_fatal (frame=0xe677b838, eva=1036) at 
/usr/src/sys/i386/i386/trap.c:939
#4  0xc0ab0640 in trap_pfault (frame=0xe677b838, usermode=0, eva=1036) 
at /usr/src/sys/i386/i386/trap.c:852
#5  0xc0ab0ffc in trap (frame=0xe677b838) at 
/usr/src/sys/i386/i386/trap.c:530
#6  0xc0a96e6b in calltrap () at /usr/src/sys/i386/i386/exception.s:159
#7  0xc0a94510 in _bus_dmamap_sync (dmat=0xc4048880, map=0xc416e800, 
op=4) at /usr/src/sys/i386/i386/busdma_machdep.c:933
#8  0xc05cc3cd in fxp_start_body (ifp=0xc4163000) at 
/usr/src/sys/dev/fxp/if_fxp.c:1396
#9  0xc05ccc77 in fxp_start (ifp=0xc4163000) at 
/usr/src/sys/dev/fxp/if_fxp.c:1183
#10 0xc0830a89 in if_start (ifp=0xc4163000) at /usr/src/sys/net/if.c:2768
#11 0xc08374cb in ether_output_frame (ifp=0xc4163000, m=0xc43a5600) at 
/usr/src/sys/net/if_ethersubr.c:405
#12 0xc0837a7c in ether_output (ifp=0xc4163000, m=0xc43a5600, 
dst=0xc423b710, rt0=0xc4489364) at /usr/src/sys/net/if_ethersubr.c:374
#13 0xc087e115 in ip_output (m=0xc43a5600, opt=0x0, ro=0xe677bac4, 
flags=Variable "flags" is not available.
) at /usr/src/sys/netinet/ip_output.c:554
#14 0xc08eb9b9 in udp_send (so=0xc46ef9c0, flags=0, m=0xc43a5600, 
addr=0xc4462ab0, control=0x0, td=0xc421f230) at 
/usr/src/sys/netinet/udp_usrreq.c:1074
#15 0xc07f2546 in sosend_dgram (so=0xc46ef9c0, addr=0xc4462ab0, 
uio=0xe677bbe8, top=0xc43a5600, control=0x0, flags=Variable "flags" is 
not available.
) at /usr/src/sys/kern/uipc_socket.c:1059
#16 0xc07efbef in sosend (so=0xc46ef9c0, addr=0xc4462ab0, 
uio=0xe677bbe8, top=0x0, control=0x0, flags=0, td=0xc421f230) at 
/usr/src/sys/kern/uipc_socket.c:1288
#17 0xc07f6ef6 in kern_sendit (td=0xc421f230, s=23, mp=0xe677bc64, 
flags=0, control=0x0, segflg=UIO_USERSPACE) at 
/usr/src/sys/kern/uipc_syscalls.c:805
#18 0xc07fa141 in sendit (td=0xc421f230, s=23, mp=0xe677bc64, flags=0) 
at /usr/src/sys/kern/uipc_syscalls.c:742
#19 0xc07fa258 in sendto (td=0xc421f230, uap=0xe677bcfc) at 
/usr/src/sys/kern/uipc_syscalls.c:857
#20 0xc0ab0995 in syscall (frame=0xe677bd38) at 
/usr/src/sys/i386/i386/trap.c:1090
#21 0xc0a96ed0 in Xint0x80_syscall () at 
/usr/src/sys/i386/i386/exception.s:255
#22 0x00000033 in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb)


I replaced the fxp(4) card with an old xl(4) card lying on my desk and 
the panics stopped.  Is this a failing nic card or some other trigger?

Brandon


More information about the freebsd-stable mailing list