[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#701489: linux-image-3.7-trunk-amd64: asix_rx_fixup error messages from Lenovo ethernet dongle



found 701489 3.2.35-2
thanks

Le samedi 23 février 2013 à 13:24 -0500, Eric Cooper a écrit :
> Package: src:linux
> Version: 3.7.8-1~experimental.1
> Severity: normal
> 
> During normal operation, there are numerous error messages from
> asix_rx_fixup, some of which are in the attached log.  This is the
> Lenovo usb-ethernet dongle supplied with the ThinkPad X1 Carbon
> laptop.
> 
Hi Eric,

I have a usb to ethernet dongle here which embed the same controller:

$ lsusb -v | grep -i asix
Bus 003 Device 002: ID 0b95:7e2b ASIX Electronics Corp. AX88772B
  idVendor           0x0b95 ASIX Electronics Corp.
  iManufacturer           1 ASIX Elec. Corp.

Like you, I get from time to time the following error messages: 

$ dmesg | grep 'asix_rx_fixup()'
[11687.121074] asix 3-1:1.0 eth0: asix_rx_fixup() Bad RX Length 582
[11859.900410] asix 3-1:1.0 eth0: asix_rx_fixup() Bad RX Length 454
[15697.977880] asix 3-1:1.0 eth0: asix_rx_fixup() Bad RX Length 66
[15697.977888] asix 3-1:1.0 eth0: asix_rx_fixup() Bad Header Length
[15698.131641] asix 3-1:1.0 eth0: asix_rx_fixup() Bad RX Length 66
[15698.131813] asix 3-1:1.0 eth0: asix_rx_fixup() Bad Header Length
[15698.618950] asix 3-1:1.0 eth0: asix_rx_fixup() Bad RX Length 66
[15698.618987] asix 3-1:1.0 eth0: asix_rx_fixup() Bad Header Length
[15698.816807] asix 3-1:1.0 eth0: asix_rx_fixup() Bad RX Length 66
[15698.816848] asix 3-1:1.0 eth0: asix_rx_fixup() Bad Header Length
[15698.963551] asix 3-1:1.0 eth0: asix_rx_fixup() Bad RX Length 66
[15698.963622] asix 3-1:1.0 eth0: asix_rx_fixup() Bad Header Length
[15699.017713] asix 3-1:1.0 eth0: asix_rx_fixup() Bad RX Length 66
[15699.017734] asix 3-1:1.0 eth0: asix_rx_fixup() Bad Header Length

As reported in the kernel ring buffer, I thought that these errors were
all related to rx_length_errors but looking at the sysfs interface it
seems it isn't the case:

$ cat /sys/class/net/eth0/statistics/rx_length_errors
2

The rest is logged in rx_errors

$ cat /sys/class/net/eth0/statistics/rx_errors
16

I tested throughput with iperf before and after these errors and it
seems that the connection is not affected (≈ 94Mbits/s), same conclusion
for the latency. 

I intended to see if a bad NIC parameter could be the cause of these
errors, but most NIC of them are fixed in the firmware (‽):

# ethtool -k eth0
Features for eth0:
rx-checksumming: off [fixed]
tx-checksumming: off
	tx-checksum-ipv4: off [fixed]
	tx-checksum-ip-generic: off [fixed]
	tx-checksum-ipv6: off [fixed]
	tx-checksum-fcoe-crc: off [fixed]
	tx-checksum-sctp: off [fixed]
scatter-gather: off
	tx-scatter-gather: off [fixed]
	tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
	tx-tcp-segmentation: off [fixed]
	tx-tcp-ecn-segmentation: off [fixed]
	tx-tcp6-segmentation: off [fixed]
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: off [requested on]
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: off [fixed]
tx-vlan-offload: off [fixed]
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: off [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]

Finally, looking at the kernel git tree for asix_rx_fixup() related
commits, only the first isn't in 3.7:

commit 8b5b6f5413e97c3e8bafcdd67553d508f4f698cd
net: asix: handle packets crossing URB boundaries (doesn't queued in
3.8)

commit a9e0aca4b37885b5599e52211f098bd7f565e749
asix: asix_rx_fixup surgery to reduce skb truesizes (applied in >= 3.4)

commit 9227a46bfbac0516fb7428715a095e1bc59b872a
asix: check packet size against mtu+ETH_HLEN instead of ETH_FRAME_LEN
(applied in >= 2.6.35)

Cheers,
Vincent


Reply to: