Subject: Re: [Qemu-devel] [RFC PATCH 0/2] Multiqueue support for qemu(virtio-net)

From: Anthony Liguori <[email-masked]>
Date: Fri, 29 Apr 2011 15:10:13 -0500

On 04/20/2011 10:33 PM, Jason Wang wrote:
> Krishna Kumar2 writes:
>   >  Thanks Jason!
>   >
>   >  So I can use my virtio-net guest driver and test with this patch?
>   >  Please provide the script you use to start MQ guest.
>   >
>
> Yes and thanks. Following is a simple script may help you start macvtap mq
> guest.
>
> qemu_path=./qemu-system-x86_64
> img_path=/home/kvm_autotest_root/images/mq.qcow2
> vtap_dev=/dev/tap104
> mac=96:88:12:1C:27:83
> smp=2
> mq=4
>
> for i in `seq $mq`
> do
>      vtap+=" -netdev tap,id=hn$i,fd=$((i+100)) $((i+100))<>$vtap_dev"

So you are basically dup()'ing the tap device.

Does this actually improve performance at all?

Regards,

Anthony Liguori

>      netdev+="hn$i#"
> done
>
> eval "$qemu_path $img_path $vtap -device virtio-net-pci,queues=$mq,netdev=$netdev,mac=$mac,vectors=32 -enable-kvm -smp $smp"
>
>
>   >  Regards,
>   >
>   >  - KK
>   >
>   >  Jason Wang<[email-masked]>  wrote on 04/20/2011 02:03:07 PM:
>   >
>   >  >  Jason Wang<[email-masked]>
>   >  >  04/20/2011 02:03 PM
>   >  >
>   >  >  To
>   >  >
>   >  >  Krishna Kumar2/India/IBM@IBMIN, [email-masked], [email-masked],
>   >  >  [email-masked], [email-masked], qemu-
>   >  >  [email-masked], [email-masked]
>   >  >
>   >  >  cc
>   >  >
>   >  >  Subject
>   >  >
>   >  >  [RFC PATCH 0/2] Multiqueue support for qemu(virtio-net)
>   >  >
>   >  >  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
>   >
>