[dpdk-dev] L3 Forwarding performance of DPDK on virtio

Clarylin L clearasu at gmail.com
Thu Jan 21 00:51:27 CET 2016

I am running dpdk within a virtual guest as a L3 forwarder.

The VM has two ports connecting to two linux bridges (in turn connecting
two physical ports). DPDK is used to forward between these two ports (one
port connected to traffic generator and the other connected to sink). I
used iperf to test the throughput.

If the VM/DPDK is running on passthrough, it can achieve around 10G
end-to-end (from traffic generator to sink) throughput. However if the
VM/DPDK is running on virtio (virtio-net-pmd), it achieves just 150M
throughput, which is a huge degrade.

On the virtio, I also measured the throughput between the traffic generator
and its connected port on VM, as well as throughput between the sink and
it's VM port. Both legs show around 7.5G throughput. So I guess forwarding
within the VM (from one port to the other) would be a big killer of the

Any suggestion on how I can root cause the poor performance issue, or any
idea on performance tuning techniques for virtio? thanks a lot!

More information about the dev mailing list