kern/140326: em0: watchdog timeout when communicating to windows using 9K MTU

Maksym Sobolyev sobomax at FreeBSD.org
Fri Nov 6 01:20:02 UTC 2009


>Number:         140326
>Category:       kern
>Synopsis:       em0: watchdog timeout when communicating to windows using 9K MTU
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Nov 06 01:20:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Maksym Sobolyev
>Release:        7.2-p4
>Organization:
Sippy Software, Inc.
>Environment:
FreeBSD pioneer.sippysoft.com 7.2-RELEASE-p4 FreeBSD 7.2-RELEASE-p4 #0: Sun Oct  4 03:08:04 PDT 2009     root at pioneer.sippysoft.com:/usr/obj/usr/src/sys/PIONEER  amd64
>Description:
My em0 interface repeatedly hangs up with watchdog timeout when communicating to the windows host at MTU 9K.

[sobomax at pioneer ~]$ grep em0 /var/run/dmesg.boot
em0: <Intel(R) PRO/1000 Network Connection 6.9.6> port 0xecc0-0xecdf mem 0xfe6e0000-0xfe6fffff,0xfe6d9000-0xfe6d9fff irq 21 at device 25.0 on pci0
em0: Using MSI interrupt
em0: [FILTER]
em0: Ethernet address: 00:22:19:32:87:2f
[sobomax at pioneer ~]$ uname -a
FreeBSD pioneer.sippysoft.com 7.2-RELEASE-p4 FreeBSD 7.2-RELEASE-p4 #0: Sun Oct  4 03:08:04 PDT 2009     root at pioneer.sippysoft.com:/usr/obj/usr/src/sys/PIONEER  amd64
[sobomax at pioneer ~]$ ifconfig em0
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 9000
        options=98<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:22:19:32:87:2f
        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
        inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
        inet6 fec0::1 prefixlen 64
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
[sobomax at pioneer ~]$ dmesg | grep watchd
em0: watchdog timeout -- resetting
em0: watchdog timeout -- resetting
em0: watchdog timeout -- resetting
em0: watchdog timeout -- resetting
em0: watchdog timeout -- resetting

I have managed to make a packet capture right at the time when hang happens. It appears to be that either "MAC Pause" or "TCP Segment of reassembled PDU" is the last packet that goes through before the interface hangs.

Here is the screenshot, if somebody wants to take closer look at the actual packets please let me know.

http://sobomax.sippysoft.com/~sobomax/ScreenShot527.png

Turning off TSO and TXCSUM/RXCSUM has not helped. Bringing MTU down to 1,500 resolved the issue.

I have had the same problem happening several times in the past (although I initially attributed it to the bad cable or something like that), so it's definitely not on-off issue.

Given popularity of intel/pro chips in today's computers it look like quite serious issue to me. Any help is greatly appreciated.
>How-To-Repeat:

>Fix:


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


More information about the freebsd-bugs mailing list