[RFC PATCH 0/2] Multiqueue support for qemu(virtio-net)

Jason Wang
2011-04-20T08:33:07Z

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