Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jun 2010 12:46:02 -0500
From:      Brandon Gooch <jamesbrandongooch@gmail.com>
To:        Jeremy Chadwick <freebsd@jdc.parodius.com>
Cc:        freebsd-stable <freebsd-stable@freebsd.org>, "Brian A. Seklecki" <bseklecki@collaborativefusion.com>, Jack Vogel <jfvogel@gmail.com>
Subject:   Re: em(4) duplex problems with 82541EI on RELENG_8, -CURRENT on  PowerEdge 1850
Message-ID:  <AANLkTilAiGMfh7Jo0aJk4aEYXnPOvJvz93Xl3fpsxGQR@mail.gmail.com>
In-Reply-To: <20100601193733.GA44816@icarus.home.lan>
References:  <1275419919.30057.50.camel@soundwave.ws.pitbpa0.priv.collaborativefusion.com> <20100601193733.GA44816@icarus.home.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jun 1, 2010 at 2:37 PM, Jeremy Chadwick
<freebsd@jdc.parodius.com> wrote:
> On Tue, Jun 01, 2010 at 03:18:39PM -0400, Brian A. Seklecki wrote:
>> =3D Re-posted from freebsd-hardware@, since this is more of a bug
>> =A0report than a hardware comparability inquiry / buying strategy
>> =A0discussion. =3D=3D
>>
>> All:
>>
>> =A0 Has anyone upgraded their PowerEdge 1850s to 8.0-PL or
>> =A0 RELENG_8 -stable? =A0We're seeing problems where 7.2-PL and
>> =A0 6.3-PL were not affected on the same hardware.
>>
>> =A0 The problem is that forcing the duplex 100/full on both
>> =A0 sides no longer functions.
>>
>> =A0 Configuration:
>>
>> =A0 =A0- A variety of Cisco L2/L3 switches over the last decade:
>> =A0 =A0-- 2848G-L3
>> =A0 =A0-- 2950
>> =A0 =A0-- 2960s
>> =A0 =A0-- 3550-12Ts
>> =A0 =A0-- 3550XLs
>> =A0 =A0-- Duplex forced 100/full on Cisco side
>> =A0 =A0- FreeBSD/amd64 RELENG_8 or 9-CURRENT with duplex
>> =A0 =A0 =A0forced '100baseTX mediaopt full-duplex',
>> =A0 =A0- This configuration has worked since FreeBSD 5.4
>>
>> =A0 When connected to PowerEdge 1850r1/r2, with the onboard Intel
>> =A0 82541EI, the parenthesis show an actual media speed/duplex of:
>>
>> =A0 media: Ethernet 100baseTX <full-duplex> =A0(100baseTX <half-duplex>)
>>
>> =A0 The same configuration using a Dell-sold Intel dual port
>> =A0 82546EB, in the same system, on the same switch, works fine.
>>
>>
>> -----------------
>> ifconfig(8):
>> -----------------
>> em3: flags=3D8843<UP,BROADCAST,RUNNING,SIMPLEX, \r
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0MULTICAST> metric 0 mtu 1500
>> options=3D9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
>> ether 00:13:72:4f:70:81
>> inet 192.168.97.20 netmask 0xffffff80 broadcast 192.168.97.127
>> media: Ethernet 100baseTX <full-duplex> (100baseTX <half-duplex>)
>> status: active
>> -----------------
>> em0: flags=3D8843<UP,BROADCAST,RUNNING,SIMPLEX,\
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0MULTICAST> metric 0 mtu 1500>
>> options=3D9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
>> ether 00:04:23:c8:fe:ac
>> media: Ethernet 100baseTX <full-duplex>
>> status: active
>> -----------------
>> -----------------
>> pciconf(8):
>> -----------------
>> em3@pci0:7:8:0: =A0 =A0 =A0 class=3D0x020000 card=3D0x016d1028 chip=3D0x=
10768086
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 rev=3D0x05 hdr=3D0x00
>> =A0 =A0 vendor =A0 =A0 =3D 'Intel Corporation'
>> =A0 =A0 device =A0 =A0 =3D 'Gigabit Ethernet Controller (82541EI)'
>> =A0 =A0 class =A0 =A0 =A0=3D network
>> =A0 =A0 subclass =A0 =3D ethernet
>> em0@pci0:3:11:0: =A0 =A0 =A0class=3D0x020000 card=3D0x10128086 chip=3D0x=
10108086 rev=3D0x01
>> hdr=3D0x00
>> =A0 =A0vendor =A0 =A0 =3D 'Intel Corporation'
>> =A0 =A0device =A0=3D 'Dual Port Gigabit Ethernet Controller (Copper) (82=
546EB)'
>> =A0 =A0class =A0 =A0 =A0=3D network
>> =A0 =A0subclass =A0 =3D ethernet
>>
>> -----------------
>>
>> rc.conf(5) for shits & giggles:
>>
>> ifconfig_em0=3D"inet X netmask Y media 100baseTX mediaopt full-duplex"
>> ifconfig_em3=3D"inet Z netmask F media 100baseTX mediaopt full-duplex"
>>
>> --------
>>
>> Example IOS switch config:
>> =A0interface FastEthernet0/39
>> =A0 description I hate Dell
>> =A0 switchport access vlan 100
>> =A0 switchport mode access
>> =A0 speed 100
>> =A0 duplex full
>> =A0 spanning-tree portfast
>> =A0end
>> --------
>>
>> I've been clearing interface counters on the switch side, but I'll send
>> 'netstat -i', 'show interface counters', and 'sudo sysctl -w
>> dev.em.3.stats=3D1' ASAP to illustrate connectivity errors soon.
>>
>> Are we being punished for patronizing Dell?
>>
>> Is it possible that ifconfig(8) output has simply changed? =A0Are the
>> values in the parenthesis on the right the Ethernet auto-sense desired
>> values where as outside the parenthesis the current active values?
>>
>> In 6.3/7.2, once you forced a speed/duplex, the values in parenthesis
>> went away entirely.
>>
>> The only way I've been able to make that happen is to #define in
>> src/sys/dev/e1000/if_em.h:
>>
>> =A0 #define DO_AUTO_NEG 0
>> =A0 /*
>> =A0 =A0* This parameter control whether or not the driver will wait for
>> =A0 =A0* autonegotiation to complete.
>> =A0 =A0* 1 - Wait for autonegotiation to complete
>> =A0 =A0* 0 - Don't wait for autonegotiation to complete
>> =A0 */
>>
>> Also seems odd that some ICs are affected but not others.
>>
>> Its also possible that my problems are pf(4) + setfib(8) related and I
>> that this is a separate issue.
>>
>> Two new notes since the original post:
>>
>> =A0- I have confirmed this problem on two revisions of the Dell
>> =A0 =A08th gen hardware in two different datacenters
>> =A0- The problem persists on -CURRENT from 05/2010
>> =A0- RELENG_7 does not seem to be impacted
>> =A0- More stats below.
>>
>>
>> Thanks,
>> =A0 =A0 ~BAS
>>
>> ---------------
>>
>>
>>
>> em1: link state changed to DOWN
>> em1: link state changed to UP
>> em1: link state changed to DOWN
>> em1: link state changed to UP
>> em1: link state changed to DOWN
>> em1: link state changed to UP
>> em1: link state changed to DOWN
>> em1: link state changed to UP
>> em1: link state changed to DOWN
>> em1: link state changed to UP
>> em1: link state changed to DOWN
>>
>> em0: Excessive collisions =3D 0
>> em0: Sequence errors =3D 0
>> em0: Defer count =3D 0
>> em0: Missed Packets =3D 0
>> em0: Receive No Buffers =3D 0
>> em0: Receive Length Errors =3D 0
>> em0: Receive errors =3D 0
>> em0: Crc errors =3D 0
>> em0: Alignment errors =3D 0
>> em0: Collision/Carrier extension errors =3D 0
>> em0: RX overruns =3D 0
>> em0: watchdog timeouts =3D 0
>> em0: RX MSIX IRQ =3D 0 TX MSIX IRQ =3D 0 LINK MSIX IRQ =3D 0
>> em0: XON Rcvd =3D 0
>> em0: XON Xmtd =3D 0
>> em0: XOFF Rcvd =3D 0
>> em0: XOFF Xmtd =3D 0
>> em0: Good Packets Rcvd =3D 1319916
>> em0: Good Packets Xmtd =3D 1070646
>> em0: TSO Contexts Xmtd =3D 0
>> em0: TSO Contexts Failed =3D 0
>> em1: Excessive collisions =3D 0
>> em1: Sequence errors =3D 0
>> em1: Defer count =3D 0
>> em1: Missed Packets =3D 0
>> em1: Receive No Buffers =3D 0
>> em1: Receive Length Errors =3D 0
>> em1: Receive errors =3D 0
>> em1: Crc errors =3D 0
>> em1: Alignment errors =3D 0
>> em1: Collision/Carrier extension errors =3D 0
>> em1: RX overruns =3D 0
>> em1: watchdog timeouts =3D 0
>> em1: RX MSIX IRQ =3D 0 TX MSIX IRQ =3D 0 LINK MSIX IRQ =3D 0
>> em1: XON Rcvd =3D 0
>> em1: XON Xmtd =3D 0
>> em1: XOFF Rcvd =3D 0
>> em1: XOFF Xmtd =3D 0
>> em1: Good Packets Rcvd =3D 251348
>> em1: Good Packets Xmtd =3D 204160
>> em1: TSO Contexts Xmtd =3D 0
>> em1: TSO Contexts Failed =3D 0
>>
>> --------------------
>>
>>
>> as0# sh int fa0/43
>> FastEthernet0/43 is up, line protocol is up (connected)
>> Hardware is Fast Ethernet, address is 0015.c683.51ab (bia
>> 0015.c683.51ab)
>> Description: X-Server EM1
>> MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
>> reliability 255/255, txload 1/255, rxload 1/255
>> Encapsulation ARPA, loopback not set
>> Keepalive set (10 sec)
>> Full-duplex, 100Mb/s, media type is 100BaseTX
>> input flow-control is unsupported output flow-control is unsupported
>> ARP type: ARPA, ARP Timeout 04:00:00
>> Last input never, output 00:00:08, output hang never
>> Last clearing of "show interface" counters 6d03h
>> Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
>> Queueing strategy: fifo
>> Output queue: 0/40 (size/max)
>> 5 minute input rate 0 bits/sec, 0 packets/sec
>> 5 minute output rate 1000 bits/sec, 3 packets/sec
>> 291422 packets input, 131521274 bytes, 0 no buffer
>> Received 798 broadcasts (0 multicast)
>> 0 runts, 0 giants, 0 throttles
>> 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
>> 0 watchdog, 99 multicast, 0 pause input
>> 0 input packets with dribble condition detected
>> 651929 packets output, 73550092 bytes, 0 underruns
>> 0 output errors, 0 collisions, 4 interface resets
>> 0 babbles, 0 late collision, 0 deferred
>> 0 lost carrier, 0 no carrier, 0 PAUSE output
>> 0 output buffer failures, 0 output buffers swapped out
>
> Brian, could you please provide the following output?
>
> - uname -a =A0(you can X-out the machine name if need be)
> - dmesg | egrep 'em0|em3' =A0(provides em driver version number)
> - pciconf -lvc =A0(this will differ from what you provided above)
>
> Next, some of the stats you provided are for em1 when most of your post
> focuses around em0 and em3. =A0Is there some correlation or was it a
> mistake?
>
> Adding Jack Vogel of Intel to the CC list, as he's been working on em(4)
> as of late.

Brian, I have no idea if this will help or not, but...

Jack just committed bits to the Intel drivers (em(4) ixgbe(4)), will
you have a chance to test a new build? I'm trying to find an unused
system ATM to test on myself, but it may take me a day or to.

BTW, it appears Jack may be trying to get the fixes (and features)
into 8.1-RELEASE, let's hope that it happens :)

-Brandon



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