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

Bug#506419: forcedeth at fault, checksum offloading



found 506419 2.6.26-8
thanks

Bastian Blank helpfully diagnosed the problem to be with the
forcedeth driver. He pointed me at commit edcfe5f[0], which should
be in 2.6.26.4, but apparently it's either not present in Debian's
2.6.26-10 package, or it does not fix the bug entirely.

0. http://repo.or.cz/w/linux-2.6.git?a=commitdiff;h=edcfe5f7e307846e578fb88d69fa27051fded0ab

The issue doesn't seem new[1] and Bastian thinks it might have to
do with bridging, which is in fact being used on my system.

1. http://kerneltrap.org/mailarchive/linux-netdev/2008/10/16/3674714

khyber:~# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.003048c2f5e8       no              eth0

He suggests it's to do with checksum offloading and asked me to
experiment with disabling the offloading:

  khyber:~# ethtool --show-offload eth0
  Offload parameters for eth0:
  rx-checksumming: on
  tx-checksumming: on
  scatter-gather: on
  tcp segmentation offload: on
  udp fragmentation offload: off
  generic segmentation offload: on

  khyber:~# ethtool --show-offload br0
  Offload parameters for br0:
  Cannot get device rx csum settings: Operation not supported
  rx-checksumming: off
  tx-checksumming: on
  scatter-gather: on
  tcp segmentation offload: on
  udp fragmentation offload: off
  generic segmentation offload: off

The problem goes away if I turn all features off, on either one
interface, or on both together, e.g.

  khyber:~# i=eth0; set -x; for s in rx tx sgo tso ufo gso; do ethtool -K $i $s off; done; set +x
  + for s in rx tx sgo tso ufo gso
  + ethtool -K eth0 rx off
  + for s in rx tx sgo tso ufo gso
  + ethtool -K eth0 tx off
  + for s in rx tx sgo tso ufo gso
  + ethtool -K eth0 sgo off
  no offload settings changed
  + for s in rx tx sgo tso ufo gso
  + ethtool -K eth0 tso off
  + for s in rx tx sgo tso ufo gso
  + ethtool -K eth0 ufo off
  Cannot set device udp large send offload settings: Operation not supported
  + for s in rx tx sgo tso ufo gso
  + ethtool -K eth0 gso off
  + set +x

The problem can indeed be fixed with

  ethtool -K eth0 tx off

or so it seems. Unfortunately, this reduces the throughput rate by
a noticeable amount.

The problem also exists with 2.6.26-8, although I have not noticed
it before last night's upgrade to -10.

Thanks, Bastian,

-- 
 .''`.   martin f. krafft <madduck@debian.org>
: :'  :  proud Debian developer, author, administrator, and user
`. `'`   http://people.debian.org/~madduck - http://debiansystem.info
  `-  Debian - when you have better things to do than fixing systems

Attachment: digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/)


Reply to: