Subject: Re: linux-3.0.18+r8169+ipv4/tcp forwarding = tso/gso weirdness and performance degration

From: Timo Teras <[email-masked]>
Date: Thu, 15 Mar 2012 08:06:35 +0200

On Wed, 14 Mar 2012 21:53:19 +0100 Francois Romieu
<[email-masked]> wrote:

> Timo Teras <[email-masked]> :
> [...]
> > # ethtool -S eth2
> > NIC statistics:
> >      tx_packets: 2069391193
> >      rx_packets: 3245815642
> >      tx_errors: 0
> >      rx_errors: 645238
> >      rx_missed: 31414
> 
> It does not look like stuff for the higher layers guys.
> 
> Can you tshark -w foobar on the sender side and
> 'while : ; do sleep 1; ethtool -S eth2 >> glop; done' on the receiver
> during a bad wget (a big zero filled file should compress well).

Indeed.

It seems that my earlier test about the "GRO off" effect were mistaken
(I used accidentally proxy, and that gave the illusion that things are
working. Whoops.)

So far I changed the cross-over cable and it didn't help. However,
forcing the NIC to 100mbit/full-duplex mode fixes the rx_errors. It
seems that something bad is happening in the gigabit mode.

# ethtool eth2
Settings for eth2:
	Supported ports: [ TP MII ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Half 1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  100baseT/Full 
	Advertised pause frame use: Symmetric Receive-only
	Advertised auto-negotiation: Yes
	Link partner advertised link modes:  10baseT/Half 10baseT/Full 
	                                     100baseT/Half 100baseT/Full 
	Link partner advertised pause frame use: Symmetric Receive-only
	Link partner advertised auto-negotiation: Yes
	Speed: 100Mb/s
	Duplex: Full
	Port: MII
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	Supports Wake-on: pumbg
	Wake-on: g
	Current message level: 0x00000033 (51)
			       drv probe ifdown ifup
	Link detected: yes

I wonder if it's using pause frames and that's messing things up. Seems
that I can't turn it off, though.

I can also double check my cables, though it is factory made Cat-5E
cross-over cable; and happens with two different cables.

-Timo