Comment 2 for bug 1682681

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

A quick check on a Trusty Guest modified from the uvt default of virtio to use rtl8139 and then moving into the kernel that is likely the reason shows me this for a trivial 1 connection duplex iperf streaming load to the Host:

Release Nettype Kernel - Result
1. 14.04 virtio 3.13.0-116 - ~11 + 8 GBits/s
2. 14.04 rtl8139 3.13.0-116 - 124 + 824 Mbits/s
3. 14.04 rtl8139 4.4.0-72 - 758 + 703 MBits/s
4. 14.04 rtl8139 4.4.0-72 - 115 + 795 MBits/s

Notes:
On #2: I already see 13k receive drops here
on #3: I can confirm TSO, GSO, SG and IP Checksum offloads on as expected, they help to speed up my load despite now seeing 26k receive drops
On #4: slow again back to ~14k drops

Note: disabling offloads via:
$ sudo ethtool -K eth0 tx-tcp-segmentation off
$ sudo ethtool -K eth0 tx-checksum-ipv4 off
$ sudo ethtool -K eth0 tx-scatter-gather off

There is quite a chance that the generally much better behavior of enabling those offloads for your specific case it is a drawback. In that case please check with the disabling of the offloads and help to clarify the details I asked for.

Yet overall IMHO - as I stated in my first comment - I'd strongly vote to use the virtio driver and be much faster than any rtl8139 based network would be.