From: "Michael S. Tsirkin" <mst@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: Steve Dobbelstein <steved@us.ibm.com>,
Anthony Liguori <aliguori@us.ibm.com>,
Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>,
kvm@vger.kernel.org, qemu-devel@nongnu.org,
Khoa Huynh <khoa@us.ibm.com>, Sridhar Samudrala <sri@us.ibm.com>
Subject: [Qemu-devel] Re: [PATCH] virtio: Use ioeventfd for virtqueue notify
Date: Sun, 3 Oct 2010 15:51:38 +0200 [thread overview]
Message-ID: <20101003135138.GA19775@redhat.com> (raw)
In-Reply-To: <4CA862A7.2080302@redhat.com>
On Sun, Oct 03, 2010 at 01:01:59PM +0200, Avi Kivity wrote:
> >
> >Guest to Host TCP_STREAM throughput(Mb/sec)
> >-------------------------------------------
> >Msg Size vhost-net virtio-net virtio-net/ioeventfd
> >65536 12755 6430 7590
> >16384 8499 3084 5764
> > 4096 4723 1578 3659
> > 1024 1827 981 2060
>
> Even more impressive (expected since the copying, which isn't
> present for block, is now shunted off into an iothread).
>
> On the last test you even exceeded vhost-net. Any theories how/why?
>
> Again, efficiency numbers would be interesting.
>
> >Host to Guest TCP_STREAM throughput(Mb/sec)
> >-------------------------------------------
> >Msg Size vhost-net virtio-net virtio-net/ioeventfd
> >65536 11156 5790 5853
> >16384 10787 5575 5691
> > 4096 10452 5556 4277
> > 1024 4437 3671 5277
>
> Here you exceed vhost-net, too.
This is with small packets- I suspect this is the extra
per interrupt overhead that eventfd has.
> >+static int kvm_check_many_iobus_devs(void)
> >+{
> >+ /* Older kernels have a 6 device limit on the KVM io bus. In that case
> >+ * creating many ioeventfds must be avoided. This tests checks for the
> >+ * limitation.
> >+ */
> >+ EventNotifier notifiers[7];
> >+ int i, ret = 0;
> >+ for (i = 0; i< ARRAY_SIZE(notifiers); i++) {
> >+ ret = event_notifier_init(¬ifiers[i], 0);
> >+ if (ret< 0) {
> >+ break;
> >+ }
> >+ ret = kvm_set_ioeventfd_pio_word(event_notifier_get_fd(¬ifiers[i]), 0, i, true);
> >+ if (ret< 0) {
> >+ event_notifier_cleanup(¬ifiers[i]);
> >+ break;
> >+ }
> >+ }
> >+
> >+ /* Decide whether many devices are supported or not */
> >+ ret = i == ARRAY_SIZE(notifiers);
> >+
> >+ while (i--> 0) {
> >+ kvm_set_ioeventfd_pio_word(event_notifier_get_fd(¬ifiers[i]), 0, i, false);
> >+ event_notifier_cleanup(¬ifiers[i]);
> >+ }
> >+ return ret;
> >+}
>
> Sorry about that.
>
> IIRC there was a problem (shared by vhost-net) with interrupts
> remaining enabled in the window between the guest kicking the queue
> and the host waking up and disabling interrupts. An even more vague
> IIRC mst had an idea to fix this?
This is one of the things that vring2 is supposed to fix.
> --
> error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2010-10-03 13:57 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-30 14:01 [Qemu-devel] [PATCH] virtio: Use ioeventfd for virtqueue notify Stefan Hajnoczi
2010-10-03 11:01 ` [Qemu-devel] " Avi Kivity
2010-10-03 13:51 ` Michael S. Tsirkin [this message]
2010-10-03 14:21 ` Avi Kivity
2010-10-03 14:28 ` Michael S. Tsirkin
2010-10-04 1:18 ` Anthony Liguori
2010-10-04 8:04 ` Avi Kivity
2010-10-04 14:01 ` Anthony Liguori
2010-10-04 16:12 ` Michael S. Tsirkin
2010-10-04 16:20 ` Anthony Liguori
2010-10-04 16:25 ` Michael S. Tsirkin
2010-10-04 14:30 ` Stefan Hajnoczi
2010-10-05 11:00 ` rukhsana ansari
2010-10-05 11:58 ` Avi Kivity
2010-10-19 13:07 ` Stefan Hajnoczi
2010-10-19 13:12 ` Anthony Liguori
2010-10-19 13:35 ` Michael S. Tsirkin
2010-10-19 13:44 ` Stefan Hajnoczi
2010-10-19 13:43 ` Michael S. Tsirkin
2010-11-10 14:52 ` Stefan Hajnoczi
2010-10-19 13:33 ` Michael S. Tsirkin
2010-10-25 13:25 ` Stefan Hajnoczi
2010-10-25 15:01 ` Stefan Hajnoczi
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=20101003135138.GA19775@redhat.com \
--to=mst@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=avi@redhat.com \
--cc=khoa@us.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=sri@us.ibm.com \
--cc=stefanha@linux.vnet.ibm.com \
--cc=steved@us.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).