How to: kernel NETDEV WATCHDOG: eth0: transmit timed out
Sometimes network connection on Linux goes down with short message in syslog saying: "[localhost kernel] NETDEV WATCHDOG: eth0: transmit timed out" (or similar).
Some network-heavy programs or the buggy driver/kernel handling of traffic could cause this error. Azureus (torrents downloading software), for example, is often guilty for this.
Solution is to offload the network card - run the following command in the console:
ethtool -K eth0 tso off
If you need to turn on the offloading for another ethernet device, just change eth0 to eth1 or so...
It works like a charm and Azureus can download lot of torrents at once without stopping the network connection.
ethtool -s eth4 speed 100 autoneg off