Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Dec 2007 15:44:26 GMT
From:      Travis Mikalson <bofh@terranova.net>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/118695: device polling + vlan causes panic on "em" interface
Message-ID:  <200712141544.lBEFiQnZ094352@www.freebsd.org>
Resent-Message-ID: <200712141550.lBEFo08Z014324@freefall.freebsd.org>

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

>Number:         118695
>Category:       kern
>Synopsis:       device polling + vlan causes panic on "em" interface
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Dec 14 15:50:00 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator:     Travis Mikalson
>Release:        7.0-BETA4
>Organization:
TerraNovaNet
>Environment:
FreeBSD napmia1-border0.mia.terranova.net 7.0-BETA4 FreeBSD 7.0-BETA4 #9: Fri Dec 14 08:40:20 EST 2007     root@napmia1-border0.mia.terranova.net:/usr/obj/usr/src/sys/napmia1  i386
>Description:
Enabling device polling on my em1 interface which has a VLAN (vlan0) attached to it seems to trigger either a panic or the em1/vlan0 interface becoming unresponsive to the network (ifconfig em1 down/up remedies that). The system is fine otherwise with polling enabled on all the other interfaces (including em0) which are not using VLANs. It seems to panic the same with or without txcsum, rxcsum or vlanhwtag. But, VLAN_HWCSUM and VLAN_MTU are still enabled, ifconfig em1 -vlanmtu doesn't seem to have any effect and there doesn't seem to be any documented ifconfig option to disable VLAN_HWCSUM. The problem may or may not exist without VLAN_HWCSUM but unfortunately I have no way to turn VLAN_HWCSUM off.

Here are the affected NICs:
em0@pci0:6:0:0: class=0x020000 card=0x11798086 chip=0x10798086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82546EB Dual Port Gigabit Ethernet Controller'
    class      = network
    subclass   = ethernet
em1@pci0:6:0:1: class=0x020000 card=0x11798086 chip=0x10798086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82546EB Dual Port Gigabit Ethernet Controller'
    class      = network
    subclass   = ethernet

When you trigger the problem you get one of these:
em1: discard frame w/o packet header

Followed shortly by a panic:
panic: sbflush_internal: cc 4294967156 || mb 0 || mbcnt 0
Uptime: 1h10m48s
Physical memory: 501 MB
Dumping 90 MB: 75 59 43 27 11
Dump complete
Automatic reboot in 15 seconds - press a key on the console to abort

I'm afraid I don't have debug symbols in my kernel so the crashdump isn't very useful, sorry. But this should be an easily reproduceable problem, so anybody with an "em" NIC around who cares to work on this shouldn't have a problem making their own crashdump within 5 minutes.
>How-To-Repeat:
Enable device polling on an "em" interface.
Attach a VLAN to an "em" interface.
Pass some traffic over the VLAN interface.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:



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