On 03/12/2013 06:17 AM, Michal Privoznik wrote:
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.
Well, there is the basic option to turn vhost-net on and off :-)
I think this can be just an attribute of <driver>:
<driver name='vhost' queues='5'/>
(we're already using driver for vhost vs. qemu, so this seems a natural
place to add it.)