Bug#701489: linux-image-3.7-trunk-amd64: asix_rx_fixup error messages from Lenovo ethernet dongle
Le mercredi 27 février 2013 à 18:04 +0100, Vincent Blut a écrit :
> 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)
This one has been added in 3.9-rc1 but don't improve the situation.
>
> 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: