From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, blauwirbel@gmail.com,
shajnocz@redhat.com, krkumar2@in.ibm.com, kvm@vger.kernel.org,
mprivozn@redhat.com, rusty@rustcorp.com.au,
gaowanlong@cn.fujitsu.com, jwhan@filewood.snu.ac.kr,
shiyer@redhat.com
Subject: Re: [PATCH V4 00/22] Multiqueue virtio-net
Date: Thu, 31 Jan 2013 16:36:12 +0200 [thread overview]
Message-ID: <20130131143612.GA13347@redhat.com> (raw)
In-Reply-To: <20130131142149.GA13106@redhat.com>
On Thu, Jan 31, 2013 at 04:21:49PM +0200, Michael S. Tsirkin wrote:
> On Wed, Jan 30, 2013 at 07:12:19PM +0800, Jason Wang wrote:
> > Hello all:
> >
> > This seires is an update of last version of multiqueue virtio-net support.
> >
> > This series tries to brings multiqueue support to virtio-net through a
> > multiqueue support tap backend and multiple vhost threads.
> >
> > Patch 1 converts bitfield in TAPState to bool. Patch 2 replace assert(0) with
> > abort() in tap.
> >
> > To support this, multiqueue nic support were added to qemu. This is done by
> > introducing an array of NetClientStates in NICState, and make each pair of peers
> > to be an queue of the nic. This is done in patch 3-9.
> >
> > Tap were also converted to be able to create a multiple queue
> > backend. Currently, only linux support this by issuing TUNSETIFF N times with
> > the same device name to create N queues. Each fd returned by TUNSETIFF were a
> > queue supported by kernel. Three new command lines were introduced, "queues"
> > were used to tell how many queues will be created by qemu; "fds" were used to
> > pass multiple pre-created tap file descriptors to qemu; "vhostfds" were used to
> > pass multiple pre-created vhost descriptors to qemu. This is done in patch 10-15.
> >
> > A method of deleting a queue and queue_index were also introduce for virtio,
> > this is done in patch 16-17.
> >
> > Vhost were also changed to support multiqueue by introducing a start vq index
> > which tracks the first virtqueue that will be used by vhost instead of the
> > assumption that the vhost always use virtqueue from index 0. This is done in
> > patch 18.
> >
> > The last part is the multiqueue userspace changes, this is done in patch 19-22.
> >
> > With this changes, user could start a multiqueue virtio-net device through
> >
> > ./qemu -netdev tap,id=hn0,queues=2,vhost=on -device virtio-net-pci,netdev=hn0
> >
> > Management tools such as libvirt can pass multiple pre-created fds/vhostfds through
> >
> > ./qemu -netdev tap,id=hn0,fds=X:Y,vhostfds=M:N -device virtio-net-pci,netdev=hn0
> >
> > For the one who wants to try, a git tree is available at:
> > git://github.com/jasowang/qemu.git
> >
> > Changes from V3:
> > - convert bitfield to bool in TAPState (Blue)
> > - use abort() instead of assert(0) in tap code (Blue)
> > - rebase to the latest
> > - fix a bug that breaks the non-tap network
>
> This conflicts with the pull request I sent, in partucular this adds a
> layout assumption. In the hope this will accelerate things, I did a
> rebase and a trivial test with single queue only and it seems ok:
>
> git://github.com/mstsirkin/qemu.git pci
>
> There were some warnings about whitespace at EOF but
> otherwise seems ok.
Pushed to my pci branch on kernel.org too.
> --
> MST
next prev parent reply other threads:[~2013-01-31 14:32 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-30 11:12 [PATCH V4 00/22] Multiqueue virtio-net Jason Wang
2013-01-30 11:12 ` [PATCH V4 01/22] net: tap: using bool instead of bitfield Jason Wang
2013-01-30 11:12 ` [PATCH V4 02/22] net: tap: use abort() instead of assert(0) Jason Wang
2013-01-30 11:12 ` [PATCH V4 03/22] net: introduce qemu_get_queue() Jason Wang
2013-01-30 11:12 ` [PATCH V4 04/22] net: introduce qemu_get_nic() Jason Wang
2013-01-30 11:12 ` [PATCH V4 05/22] net: intorduce qemu_del_nic() Jason Wang
2013-01-30 11:12 ` [PATCH V4 06/22] net: introduce qemu_find_net_clients_except() Jason Wang
2013-01-30 11:12 ` [PATCH V4 07/22] net: introduce qemu_net_client_setup() Jason Wang
2013-01-30 11:12 ` [PATCH V4 08/22] net: introduce NetClientState destructor Jason Wang
2013-01-30 11:12 ` [PATCH V4 09/22] net: multiqueue support Jason Wang
2013-01-30 11:12 ` [PATCH V4 10/22] tap: import linux multiqueue constants Jason Wang
2013-01-30 11:12 ` [PATCH V4 11/22] tap: factor out common tap initialization Jason Wang
2013-01-30 11:12 ` [PATCH V4 12/22] tap: add Linux multiqueue support Jason Wang
2013-01-30 11:12 ` [PATCH V4 13/22] tap: support enabling or disabling a queue Jason Wang
2013-01-30 11:12 ` [PATCH V4 14/22] tap: introduce a helper to get the name of an interface Jason Wang
2013-01-30 11:12 ` [PATCH V4 15/22] tap: multiqueue support Jason Wang
2013-01-30 11:12 ` [PATCH V4 16/22] vhost: " Jason Wang
2013-01-30 11:12 ` [PATCH V4 17/22] virtio: introduce virtio_del_queue() Jason Wang
2013-01-30 11:12 ` [PATCH V4 18/22] virtio: add a queue_index to VirtQueue Jason Wang
2013-01-30 11:12 ` [PATCH V4 19/22] virtio-net: separate virtqueue from VirtIONet Jason Wang
2013-01-30 11:12 ` [PATCH V4 20/22] virtio-net: multiqueue support Jason Wang
2013-01-30 11:12 ` [PATCH V4 21/22] virtio-net: migration support for multiqueue Jason Wang
2013-01-30 11:12 ` [PATCH V4 22/22] virtio-net: compat multiqueue support Jason Wang
[not found] ` <5109669F.5010405@redhat.com>
2013-01-31 7:00 ` [Qemu-devel] [PATCH V4 00/22] Multiqueue virtio-net Jason Wang
2013-01-31 13:44 ` Eric Blake
2013-01-31 13:58 ` [Qemu-devel] " Michael S. Tsirkin
2013-01-31 15:18 ` Eric Blake
2013-01-31 15:04 ` [Qemu-devel] " Jason Wang
2013-01-31 14:21 ` Michael S. Tsirkin
2013-01-31 14:36 ` Michael S. Tsirkin [this message]
2013-01-31 15:05 ` Jason Wang
2013-02-04 22:53 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130131143612.GA13347@redhat.com \
--to=mst@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=blauwirbel@gmail.com \
--cc=gaowanlong@cn.fujitsu.com \
--cc=jasowang@redhat.com \
--cc=jwhan@filewood.snu.ac.kr \
--cc=krkumar2@in.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=mprivozn@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rusty@rustcorp.com.au \
--cc=shajnocz@redhat.com \
--cc=shiyer@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.