misc/147961: crash when forwarding enabled between two Broadcom
cards on gigabit ports
Vladimir Nikolic
vladimir.nikolic at amis.net
Fri Jun 18 09:20:10 UTC 2010
>Number: 147961
>Category: misc
>Synopsis: crash when forwarding enabled between two Broadcom cards on gigabit ports
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Jun 18 09:20:07 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator: Vladimir Nikolic
>Release: 7.3
>Organization:
Amis d.o.o.
>Environment:
FreeBSD api.amis.net 7.3-RELEASE FreeBSD 7.3-RELEASE #0: Thu Mar 25 09:07:15 CET 2010 root at api.amis.net:/usr/obj/usr/src/sys/SMP-AMIS i386
>Description:
FreeBSD 7.3 (same was with 7.1) crash when either one of two Broadcom NetXtreme II Gigabit Ethernet Adapter (BCM5708) card (server is HP DL 360 G5) is connected on Cisco switch 1 gbe port. This happens only if forwarding is enabled between cards (gateway_enable="YES") and pf is enabled (with rdr and nat). It happened in 1-10 seconds, traffic rate is not important.
We have same servers with same OS but without enabled forwarding between interfaces and there is no crashes. If switch ports are fixed on 100 Mb/s ('speed 100'), server is working without crash, traffic could be very high (90Mb/s).
>How-To-Repeat:
Enabling autonagotiation na cisco switch port ('no auto 100').
>Fix:
Patch attached with submission follows:
api:/var/crash# kgdb /boot/kernel/kernel.symbols vmcore.6
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 = 1; apic id = 01
fault virtual address = 0x17741810
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc05e1396
stack pointer = 0x28:0xea7b7af0
frame pointer = 0x28:0xea7b7af0
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 = 13636 (snmpd)
trap number = 12
panic: page fault
cpuid = 1
Uptime: 4d15h17m39s
Physical memory: 1013 MB
Dumping 220 MB: 205 189 173 157 141 125 109 93 77 61 45 29 13
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/nfsserver.ko...Reading symbols from /boot/kernel/nfsserver.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/nfsserver.ko
Reading symbols from /boot/kernel/ng_socket.ko...Reading symbols from /boot/kernel/ng_socket.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_socket.ko
Reading symbols from /boot/kernel/netgraph.ko...Reading symbols from /boot/kernel/netgraph.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/netgraph.ko
Reading symbols from /boot/kernel/ng_mppc.ko...Reading symbols from /boot/kernel/ng_mppc.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_mppc.ko
Reading symbols from /boot/kernel/rc4.ko...Reading symbols from /boot/kernel/rc4.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/rc4.ko
Reading symbols from /boot/kernel/smbfs.ko...Reading symbols from /boot/kernel/smbfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/smbfs.ko
Reading symbols from /boot/kernel/libiconv.ko...Reading symbols from /boot/kernel/libiconv.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/libiconv.ko
Reading symbols from /boot/kernel/libmchain.ko...Reading symbols from /boot/kernel/libmchain.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/libmchain.ko
Reading symbols from /boot/kernel/ng_tee.ko...Reading symbols from /boot/kernel/ng_tee.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_tee.ko
Reading symbols from /boot/kernel/ng_pptpgre.ko...Reading symbols from /boot/kernel/ng_pptpgre.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_pptpgre.ko
Reading symbols from /boot/kernel/ng_ksocket.ko...Reading symbols from /boot/kernel/ng_ksocket.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_ksocket.ko
Reading symbols from /boot/kernel/ng_iface.ko...Reading symbols from /boot/kernel/ng_iface.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_iface.ko
Reading symbols from /boot/kernel/ng_ppp.ko...Reading symbols from /boot/kernel/ng_ppp.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_ppp.ko
Reading symbols from /boot/kernel/ng_tcpmss.ko...Reading symbols from /boot/kernel/ng_tcpmss.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_tcpmss.ko
#0 doadump () at pcpu.h:196
196 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) backtrace
#0 doadump () at pcpu.h:196
#1 0xc05f1097 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418
#2 0xc05f1369 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:574
#3 0xc07bd95c in trap_fatal (frame=0xea7b7ab0, eva=393484304) at /usr/src/sys/i386/i386/trap.c:950
#4 0xc07bdbc0 in trap_pfault (frame=0xea7b7ab0, usermode=0, eva=393484304) at /usr/src/sys/i386/i386/trap.c:863
#5 0xc07be569 in trap (frame=0xea7b7ab0) at /usr/src/sys/i386/i386/trap.c:541
#6 0xc07a1c8b in calltrap () at /usr/src/sys/i386/i386/exception.s:166
#7 0xc05e1396 in _mtx_trylock (m=0x17741800, opts=0, file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:260
#8 0xc076fa50 in vmtotal (oidp=0xc0897160, arg1=0x0, arg2=48, req=0xea7b7ba4) at /usr/src/sys/vm/vm_meter.c:115
#9 0xc05fb0f7 in sysctl_root (oidp=Variable "oidp" is not available.
) at /usr/src/sys/kern/kern_sysctl.c:1419
#10 0xc05fc3f4 in userland_sysctl (td=0xc7a906c0, name=0xea7b7c14, namelen=2, old=0xbfbfe664, oldlenp=0xbfbfe748, inkernel=0, new=0x0, newlen=0,
retval=0xea7b7c10, flags=0) at /usr/src/sys/kern/kern_sysctl.c:1522
#11 0xc05fc584 in __sysctl (td=0xc7a906c0, uap=0xea7b7cfc) at /usr/src/sys/kern/kern_sysctl.c:1449
#12 0xc07bdf15 in syscall (frame=0xea7b7d38) at /usr/src/sys/i386/i386/trap.c:1101
#13 0xc07a1cf0 in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:262
#14 0x00000033 in ?? ()
Previous frame inner to this frame (corrupt stack?)
(kgdb)
# Kernel config
machine i386
cpu I686_CPU
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
ident SMP-AMIS
options SMP
options SCHED_ULE # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options MD_ROOT # MD is a potential root device
options GEOM_PART_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options ADAPTIVE_GIANT # Giant mutex is adaptive.
options AUDIT # Security event auditing
options QUOTA
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_CDNR
options ALTQ_PRIQ
options DEVICE_POLLING
options HZ=1000
options INCLUDE_CONFIG_FILE
options SW_WATCHDOG
device apic # I/O APIC
device eisa
device pci
device fdc
device ata
device atadisk # ATA disk drives
device atapicd # ATAPI CDROM drives
options ATA_STATIC_ID # Static device numbering
device ahc # AHA2940 and onboard AIC7xxx devices
device mpt # LSI-Logic MPT-Fusion
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device scbus # SCSI bus (required for SCSI)
device da # Direct Access (disks)
device ciss # Compaq Smart RAID 5*
device mly # Mylex AcceleRAID/eXtremeRAID
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device kbdmux # keyboard multiplexer
device vga # VGA video card driver
device sc
device agp # support several AGP chipsets
device pmtimer
device sio # 8250, 16[45]50 based serial ports
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device igb # Intel PRO/1000 PCIE Server Gigabit Family
device miibus # MII bus support
device bge # Broadcom BCM570xx Gigabit Ethernet
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device le # Podpora za VmWare ESX 3.0
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards - KVM
device wb # Winbond W89C840F
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device bpf # Berkeley packet filter
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
device ukbd # Keyboard
device ums # Mouse
device pf
device pflog
device pfsync
device carp
options IPSEC #IP security
device crypto
options IPSEC_DEBUG #debug for IP security
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list