Panic in RELENG_7_1 with fxp(4)
Pyun YongHyeon
pyunyh at gmail.com
Mon Jan 5 03:27:07 UTC 2009
On Sat, Jan 03, 2009 at 10:16:58PM -0800, Garrett Cooper wrote:
> On Jan 3, 2009, at 5:17 PM, Brandon Weisz wrote:
>
> >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
>
> Memory serves me correctly an MFC was done not too long before 7.1
> release was setup.
>
I don't know what MFCes were done, at least I didn't MFC any
changes I made.
> Let's see what Pyun says...
>
I'm not sure what is root cause of this panic. If you can reliably
reproduce the panic would you let me know?
CURRENT has a couple of fixes for edge-cases as well as some new
hardware features(TSO, VLAN hardware tagging and WOL etc). Would
you try latest fxp(4) in HEAD?
I think you can use cvsweb interface to get latest files.
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/fxp/if_fxp.c
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/fxp/if_fxpreg.h
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/fxp/if_fxpvar.h
--
Regards,
Pyun YongHyeon
More information about the freebsd-stable
mailing list