[Bug 193802] New: tso seems broken on RELENG10 for version 7.4.2 of em driver

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Sep 21 01:00:30 UTC 2014


            Bug ID: 193802
           Summary: tso seems broken on RELENG10 for version 7.4.2 of em
           Product: Base System
           Version: 10.0-STABLE
          Hardware: amd64
                OS: Any
            Status: Needs Triage
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: mike at sentex.net

The latest version of the em driver seems to have broken tso support.  When
using default nfs mount options, the client's nic will wedge and throw watchdog
errors.  Reverting to the previous version of em, or disabling tso works around
the issue.

The bug seems to effect at least two variants of the NIC

     vendor     = 'Intel Corporation'
     device     = '82574L Gigabit Network Connection'
     class      = network


em0 at pci0:0:25:0:        class=0x020000 card=0x34ec8086 chip=0x10ef8086 
rev=0x05 hdr=0x00
     vendor     = 'Intel Corporation'
     device     = '82578DM Gigabit Network Connection'

More discussion can be found in 

To recreate the issue, on the nfs client mount an nfs share with default
options. In my test case, it was a RELENG10 box with igb nics acting as the
generate a number of tcp streams over the share.  running these two scripts at
the same time will wedge the client nic in less then a few minutes


while true
  dd if=/dev/urandom ibs=64k count=1000 | pbzip2 -c -p3 > /mnt/test.bz2
  dd if=/dev/urandom ibs=63k count=1000 | pbzip2 -c -p3 > /mnt/test.bz2
  dd if=/dev/urandom ibs=66k count=1000 | pbzip2 -c -p3 > /mnt/test.bz2
root at backup3:/usr/home/mdtancsa # cat i3

while true
dd if=/dev/zero of=/mnt/test2 bs=128k count=2000
sleep 10

When wedged, the NIC shows

Interface is RUNNING and ACTIVE
em1: hw tdh = 343, hw tdt = 838
em1: hw rdh = 512, hw rdt = 511
em1: Tx Queue Status = 1
em1: TX descriptors avail = 516
em1: Tx Descriptors avail failure = 1
em1: RX discarded packets = 0
em1: RX Next to Check = 512
em1: RX Next to Refresh = 511

Occasionally, this error message will show up

em0: Watchdog timeout -- resetting
em0: Queue(0) tdh = 349, hw tdt = 176
em0: TX(0) desc avail = 173,Next TX to Clean = 349
em0: link state changed to DOWN
em0: link state changed to UP

At this point, ifconfig em0 down;ifconfig em0 up needs to be done.
work around is either to revert to the previous version of the driver, or
ifconfig em0 -tso

FreeBSD 10.1-BETA1 #10 r271466
on an Intel MB S3420GP
Latest BIOS 
Version: S3420GP.86B.01.00.0052.051620141338

Also tested on an AMD MB with a PCI-E NIC

You are receiving this mail because:
You are the assignee for the bug.

More information about the freebsd-bugs mailing list