NETDEV WATCHDOG: eth0 (e1000e): transmit queue 0 timed out

Had problems with these error messages with arch linux, they only occur under heavy networking load. It seems to be someting related to the linux kernel ethernet driver. The one I am using is the 'Intel Corporation Ethernet Connection I217-V (rev 04)'. By disabling TSO the problem disapears. TSO stands for TCP Segmentation Offload, it is a feature built in a NIC to divide large larger data chunks into TCP segments. If TSO is disabled, the CPU performs segmentation for TCP/IP.

Reading many articles on Google I get the impression that disabling TSO is suppressing a driver bug, but anyway ... it works ... and I can not detect any degradation of networking performance.

Disabling TSO can be done as follows: ethtool -K eth0 tso off

My system is running systemd (arch linux), a service file to disable TSO during every boot:

[Unit]
Description=Disables tso for eno1 during startup
Wants=network-online.target
After=network.target network-online.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -K eno1 tso off
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target