Ethernet network offloading

Several wired network adapters have offloading capabilities in order to lower the CPU usage. This also helps in order to lower the CPU interrupts and thus to enable it to stay in better power saving states.

Unfortunately Ubuntu Linux does not enable by default most of those offloading capabilities, and we have to do it by hand. Here is how.

To see your network card offloading capabilities and status type (where eth0 is the network interface device):

ethtool -k eth0

My output was this one:

Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: off
scatter-gather: off
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: off

as you may see with 5 offloading capabilities out of 6 disabled.

In order to enable them you have to issue these commands:

sudo ethtool -K eth0 tx on
sudo ethtool -K eth0 rx on
sudo ethtool -K eth0 sg on
sudo ethtool -K eth0 tso on
sudo ethtool -K eth0 ufo on
sudo ethtool -K eth0 gso on

Since these settings are lost on reboot, if you want them to persist upon reboots you have to add those commands at the bottom of /etc/rc.local

Related posts:

  1. How to connect to internet through an ADSL ethernet modem
  2. Come connettersi ad internet attraverso un’ADSL con cavo ethernet e password (PPPoE)
  3. Gnome network manager automatically connects to wrong networks!
  4. Slow Bootup Times
| Print This Post Print This Post | Email This Post Email This Post
RSS 2.0 | Trackback | Comment

3 Responses to “Ethernet network offloading”

  1. zcat says:

    Will this work with wireless connections?

    • Peterix says:

      When your card doesn’t support it, the program will tell you that.
      [peterix@peterix /]$ sudo ethtool -K eth0 ufo on
      Cannot set device udp large send offload settings: Operation not supported

      So, the best course of action is to try it out.

      Also, it doesn’t have to be eth0. Check the output of ‘ifconfig’ and find the interface you want to tweak first. For example, I have two ethernet interfaces – eth0 and eth1 – I set both of them to do offloading :) Don’t bother tweaking ‘lo’, ‘br’ and other different things though. These aren’t real physical interfaces.

  2. [...] Enable Ethernet network offloading click here for the howto [...]

Leave a Reply

XHTML: You can use these tags: b, cite, code, em, i, q cite="", strike, strong.