Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jun 2010 09:16:49 GMT
From:      Vladimir Nikolic <vladimir.nikolic@amis.net>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/147961: crash when forwarding enabled between two Broadcom cards on gigabit ports
Message-ID:  <201006180916.o5I9Gnhg010076@www.freebsd.org>
Resent-Message-ID: <201006180920.o5I9K7OM080356@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006180916.o5I9Gnhg010076>