Inspired by Krishna's patch (http://www.spinics.net/lists/kvm/msg52098.html) and Michael's suggestions. The following series adds the multiqueue support for qemu and enable it for virtio-net (both userspace and vhost). The aim for this series is to simplified the management and achieve the same performacne with less codes. Follows are the differences between this series and Krishna's: - Add the multiqueue support for qemu and also for userspace virtio-net - Instead of hacking the vhost module to manipulate kthreads, this patch just implement the userspace based multiqueues and thus can re-use the existed vhost kernel-side codes without any modification. - Use 1:1 mapping between TX/RX pairs and vhost kthread because the implementation is based on usersapce. - The cli is also changed to make the mgmt easier, the -netdev option of qdev can now accpet more than one ids. You can start a multiqueue virtio-net device through: ./qemu-system-x86_64 -netdev tap,id=hn0,vhost=on,fd=X -netdev tap,id=hn0,vhost=on,fd=Y -device virtio-net-pci,netdev=hn0#hn1,queues=2 ... The series is very primitive and still need polished. Suggestions are welcomed. --- Jason Wang (2): net: Add multiqueue support virtio-net: add multiqueue support hw/qdev-properties.c | 37 ++++- hw/qdev.h | 3 hw/vhost.c | 26 ++- hw/vhost.h | 1 hw/vhost_net.c | 7 + hw/vhost_net.h | 2 hw/virtio-net.c | 409 ++++++++++++++++++++++++++++++++------------------ hw/virtio-net.h | 2 hw/virtio-pci.c | 1 hw/virtio.h | 1 net.c | 34 +++- net.h | 15 +- 12 files changed, 353 insertions(+), 185 deletions(-) -- Jason Wang -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html