It's been a while since qemu added support for multiqueue virtio-net.
For more info follow [1]. From usage POV, libvirt is required to pass
multiple FDs:
qemu-kvm -netdev tap,id=hn0,fds=x:y:...:z,vhost=on,vhostfds=a:b:...:c
-device virtio-net-pci,netdev=hn0,vectors=N ...
where count(x:...:z) = M. We are strongly advised to use 1:1 ratio => M=N.
The FDs for 'fds' argument can be obtained via:
fd1 = open("/dev/net/tun")
ioctl(fd1, TUNSETIFF, "tap")
fd2 = open("/dev/net/tun")
ioctl(fd2, TUNATTACHQUEUE, "tap")
And what I am wondering about is, how to expose this to XML. Or do we
even want to expose this instead of some smart automatic setting? There
are not any other configurable knobs right now, but they may come in the
future.
Michal
1:
http://www.linux-kvm.org/page/Multiqueue