Bug #3090

VirtIO/vtnet: very poor IPv6 receiving performance (~100x slower)

Added by liweitianux over 1 year ago. Updated about 1 year ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:



I'm running DFly (4.8.0) on a VPS with both IPv4 and IPv6. However, I'm suffering poor *IPv6 receiving* performance (~100x slower!!), but IPv6 sending, IPv4 sending and receiving all perform very well.

I carried out several tests, and finally I'm quite sure that the problem exists in DFly's VirtIO driver.

I booted DFly (5.0), FreeBSD (11), and Arch Linux (201705) LiveCDs on my VPS, and configured basic IPv6 connection, then tried to download a 128 MB test file from the VPS provider's service. The followings are the test results:

OS (virtio) | download speed
DFly (IPv6) | ~80 kB/s (NOTE: it's kB/s)
FBSD (IPv6) | ~85 MB/s
Arch (IPv6) | ~83 MB/s

In addition, I used "iperf3" to further test the sending/receiving bandwidth of my VPS (located in the Netherlands), against a iperf server in France (

OS/driver | DFly (virtio) | DFly (em)
IPv4 - sending | ~240 Mb/s | ~170 Mb/s
IPv4 - receiving | ~400 Mb/s | ~430 Mb/s
IPv6 - sending | ~160 Mb/s | ~115 Mb/s
IPv6 - receiving | ~0.5 Mb/s (!!) | ~370 Mb/s

To confirm the problem, I switched the network driver of my VPS from "VirtIO" to "Intel PRO/1000" (i.e., "em" driver) and redo the tests, which gave me very impressing IPv6 performance!

NOTE: I did these tests yesterday and today, so the reported network bandwidth might vary much. But the VirtIO IPv6 receiving problem is very obvious!

I'm not sure whether this problem is due to the maybe out-of-date virtio driver (compared to FreeBSD's), or because it does not well integrate with the DFly system.


Related issues

Related to Bug #3089: vtnet(4) - disable TCP checksum offload by defaultIn Progress10/21/2017


#1 Updated by liweitianux over 1 year ago

  • Related to Bug #3089: vtnet(4) - disable TCP checksum offload by default added

#2 Updated by vadaszi over 1 year ago

  • Status changed from New to In Progress
  • Assignee set to vadaszi

Ok, I also cherry-picked 849f77c77acc4d5041fa638b364cb6a296a8051b to the DragonFly_RELEASE_4_8 git branch.

#3 Updated by liweitianux about 1 year ago

  • Status changed from In Progress to Closed

The reason for this issue is explained in Bug #3089, so just close this one.

Also available in: Atom PDF