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

Jason Wang
2011-04-21T03:33:33Z

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"
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 <jasowang@redhat.com> wrote on 04/20/2011 02:03:07 PM:
>
> > Jason Wang <jasowang@redhat.com>
> > 04/20/2011 02:03 PM
> >
> > To
> >
> > Krishna Kumar2/India/IBM@IBMIN, kvm@vger.kernel.org, mst@redhat.com,
> > netdev@vger.kernel.org, rusty@rustcorp.com.au, qemu-
> > devel@nongnu.org, anthony@codemonkey.ws
> >
> > 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
>