Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Apr 2013 13:05:11 +0200
From:      Oliver Brandmueller <ob@e-Gitt.NET>
To:        freebsd-stable@freebsd.org
Subject:   em driver Update r235527 (May 2012) broke hw csum (at least)
Message-ID:  <20130412110511.GR79102@e-Gitt.NET>

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

just for a short note: I have several servers running FreeBSD 9-STABLE. 
However, the test of the latest STABLE revisions (machines received no 
OS updates for over a year, no relevant security updates for my case) 
brought up stability issues.

After giving traffic (over 2 VLANs) to the machine it stalled. I could 
switch between screens, could not start any command, top/vmstat/... 
stopped updating. ping was fine. After some time the machine was 
sometimes back for a few seconds, if I stopped the service (dovecot2, 
about 800-1500 sessions) I could keep it running sometimes. If I was not 
able to stop the service in time, the machine kept in "stalled" state 
until reset.

em0@pci0:3:0:0: class=0x020000 card=0x040d15d9 chip=0x10d38086 rev=0x00 
hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82574L Gigabit Network Connection'
    class      = network
    subclass   = ethernet

FreeBSD [...] 9.1-STABLE FreeBSD 9.1-STABLE #18 
r249361: Thu Apr 11 16:38:17 CEST 2013     
root@[...]:/usr/obj/usr/src/sys/APP-64-FBSD9  amd64


Switching off most of the hardware offloading works around the problem:

up vlanmtu -tso -lro -rxcsum -txcsum -vlanhwtag -vlanhwcsum -vlantso

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 
1500
        options=42088<VLAN_MTU,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWTSO>
        ether 00:25:90:32:e3:a8
        inet6 fe80::225:90ff:fe32:e3a8%em0 prefixlen 64 scopeid 0x2 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active

Though I wondoer, it still says: VLAN_HWCSUM VLAN_HWTSO in the Options?


Interestingly -txcsum -rxcsum was my first test, this alone didn't do 
the trick (or the interface was already in a state where it wouldn't 
fully recover).


OK, I know: using hw csum is a bad idea anyway, even thogh it seemed to 
be working for my case up to that point. Does it make sense to dig any 
deeper or ist it just the way it is and I stumbled over not using best 
practice up to then? :-)


- Oliver


-- 
| Oliver Brandmueller          http://sysadm.in/         ob@sysadm.in |
|                        Ich bin das Internet. Sowahr ich Gott helfe. |



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