From: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
Anthony Liguori <aliguori@us.ibm.com>,
Khoa Huynh <khoa@us.ibm.com>, Sridhar Samudrala <sri@us.ibm.com>,
Steve Dobbelstein <steved@us.ibm.com>
Subject: Re: [PATCH] virtio: Use ioeventfd for virtqueue notify
Date: Tue, 19 Oct 2010 14:07:11 +0100 [thread overview]
Message-ID: <20101019130710.GA3906@stefan-thinkpad.transitives.com> (raw)
In-Reply-To: <1285855312-11739-1-git-send-email-stefanha@linux.vnet.ibm.com>
On Thu, Sep 30, 2010 at 03:01:52PM +0100, Stefan Hajnoczi wrote:
> Virtqueue notify is currently handled synchronously in userspace virtio.
> This prevents the vcpu from executing guest code while hardware
> emulation code handles the notify.
>
> On systems that support KVM, the ioeventfd mechanism can be used to make
> virtqueue notify a lightweight exit by deferring hardware emulation to
> the iothread and allowing the VM to continue execution. This model is
> similar to how vhost receives virtqueue notifies.
>
> The result of this change is improved performance for userspace virtio
> devices. Virtio-blk throughput increases especially for multithreaded
> scenarios and virtio-net transmit throughput increases substantially.
> Full numbers are below.
>
> This patch employs ioeventfd virtqueue notify for all virtio devices.
> Linux kernels pre-2.6.34 only allow for 6 ioeventfds per VM and care
> must be taken so that vhost-net, the other ioeventfd user in QEMU, is
> able to function. On such kernels ioeventfd virtqueue notify will not
> be used.
>
> Khoa Huynh <khoa@us.ibm.com> collected the following data for
> virtio-blk with cache=none,aio=native:
>
> FFSB Test Threads Unmodified Patched
> (MB/s) (MB/s)
> Large file create 1 21.7 21.8
> 8 101.0 118.0
> 16 119.0 157.0
>
> Sequential reads 1 21.9 23.2
> 8 114.0 139.0
> 16 143.0 178.0
>
> Random reads 1 3.3 3.6
> 8 23.0 25.4
> 16 43.3 47.8
>
> Random writes 1 22.2 23.0
> 8 93.1 111.6
> 16 110.5 132.0
>
> Sridhar Samudrala <sri@us.ibm.com> collected the following data for
> virtio-net with 2.6.36-rc1 on the host and 2.6.34 on the guest.
>
> 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
>
> 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
>
> Guest to Host TCP_RR latency(transactions/sec)
> ----------------------------------------------
>
> Msg Size vhost-net virtio-net virtio-net/ioeventfd
> 1 9903 3459 3425
> 4096 7185 1931 1899
> 16384 6108 2102 1923
> 65536 3161 1610 1744
>
> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> ---
> Small changes are required for qemu-kvm.git. I will send them once qemu.git
> has virtio-ioeventfd support.
>
> hw/vhost.c | 6 ++--
> hw/virtio.c | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> hw/virtio.h | 9 +----
> kvm-all.c | 39 +++++++++++++++++++++
> kvm-stub.c | 5 +++
> kvm.h | 1 +
> 6 files changed, 156 insertions(+), 10 deletions(-)
Is there anything stopping this patch from being merged?
Thanks,
Stefan
WARNING: multiple messages have this Message-ID (diff)
From: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: Steve Dobbelstein <steved@us.ibm.com>,
Anthony Liguori <aliguori@us.ibm.com>,
kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
Khoa Huynh <khoa@us.ibm.com>, Sridhar Samudrala <sri@us.ibm.com>
Subject: [Qemu-devel] Re: [PATCH] virtio: Use ioeventfd for virtqueue notify
Date: Tue, 19 Oct 2010 14:07:11 +0100 [thread overview]
Message-ID: <20101019130710.GA3906@stefan-thinkpad.transitives.com> (raw)
In-Reply-To: <1285855312-11739-1-git-send-email-stefanha@linux.vnet.ibm.com>
On Thu, Sep 30, 2010 at 03:01:52PM +0100, Stefan Hajnoczi wrote:
> Virtqueue notify is currently handled synchronously in userspace virtio.
> This prevents the vcpu from executing guest code while hardware
> emulation code handles the notify.
>
> On systems that support KVM, the ioeventfd mechanism can be used to make
> virtqueue notify a lightweight exit by deferring hardware emulation to
> the iothread and allowing the VM to continue execution. This model is
> similar to how vhost receives virtqueue notifies.
>
> The result of this change is improved performance for userspace virtio
> devices. Virtio-blk throughput increases especially for multithreaded
> scenarios and virtio-net transmit throughput increases substantially.
> Full numbers are below.
>
> This patch employs ioeventfd virtqueue notify for all virtio devices.
> Linux kernels pre-2.6.34 only allow for 6 ioeventfds per VM and care
> must be taken so that vhost-net, the other ioeventfd user in QEMU, is
> able to function. On such kernels ioeventfd virtqueue notify will not
> be used.
>
> Khoa Huynh <khoa@us.ibm.com> collected the following data for
> virtio-blk with cache=none,aio=native:
>
> FFSB Test Threads Unmodified Patched
> (MB/s) (MB/s)
> Large file create 1 21.7 21.8
> 8 101.0 118.0
> 16 119.0 157.0
>
> Sequential reads 1 21.9 23.2
> 8 114.0 139.0
> 16 143.0 178.0
>
> Random reads 1 3.3 3.6
> 8 23.0 25.4
> 16 43.3 47.8
>
> Random writes 1 22.2 23.0
> 8 93.1 111.6
> 16 110.5 132.0
>
> Sridhar Samudrala <sri@us.ibm.com> collected the following data for
> virtio-net with 2.6.36-rc1 on the host and 2.6.34 on the guest.
>
> 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
>
> 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
>
> Guest to Host TCP_RR latency(transactions/sec)
> ----------------------------------------------
>
> Msg Size vhost-net virtio-net virtio-net/ioeventfd
> 1 9903 3459 3425
> 4096 7185 1931 1899
> 16384 6108 2102 1923
> 65536 3161 1610 1744
>
> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> ---
> Small changes are required for qemu-kvm.git. I will send them once qemu.git
> has virtio-ioeventfd support.
>
> hw/vhost.c | 6 ++--
> hw/virtio.c | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> hw/virtio.h | 9 +----
> kvm-all.c | 39 +++++++++++++++++++++
> kvm-stub.c | 5 +++
> kvm.h | 1 +
> 6 files changed, 156 insertions(+), 10 deletions(-)
Is there anything stopping this patch from being merged?
Thanks,
Stefan
next prev parent reply other threads:[~2010-10-19 13:07 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-30 14:01 [PATCH] virtio: Use ioeventfd for virtqueue notify Stefan Hajnoczi
2010-09-30 14:01 ` [Qemu-devel] " Stefan Hajnoczi
2010-10-03 11:01 ` Avi Kivity
2010-10-03 11:01 ` [Qemu-devel] " Avi Kivity
2010-10-03 13:51 ` Michael S. Tsirkin
2010-10-03 13:51 ` [Qemu-devel] " Michael S. Tsirkin
2010-10-03 14:21 ` Avi Kivity
2010-10-03 14:21 ` [Qemu-devel] " Avi Kivity
2010-10-03 14:28 ` Michael S. Tsirkin
2010-10-03 14:28 ` [Qemu-devel] " Michael S. Tsirkin
2010-10-04 1:18 ` Anthony Liguori
2010-10-04 1:18 ` [Qemu-devel] " Anthony Liguori
2010-10-04 8:04 ` Avi Kivity
2010-10-04 8:04 ` [Qemu-devel] " Avi Kivity
2010-10-04 14:01 ` Anthony Liguori
2010-10-04 14:01 ` Anthony Liguori
2010-10-04 16:12 ` Michael S. Tsirkin
2010-10-04 16:12 ` Michael S. Tsirkin
2010-10-04 16:20 ` Anthony Liguori
2010-10-04 16:20 ` Anthony Liguori
2010-10-04 16:25 ` Michael S. Tsirkin
2010-10-04 16:25 ` Michael S. Tsirkin
2010-10-04 14:30 ` Stefan Hajnoczi
2010-10-04 14:30 ` [Qemu-devel] " Stefan Hajnoczi
2010-10-05 11:00 ` rukhsana ansari
2010-10-05 11:00 ` [Qemu-devel] " rukhsana ansari
2010-10-05 11:58 ` Avi Kivity
2010-10-05 11:58 ` [Qemu-devel] " Avi Kivity
2010-10-19 13:07 ` Stefan Hajnoczi [this message]
2010-10-19 13:07 ` Stefan Hajnoczi
2010-10-19 13:12 ` Anthony Liguori
2010-10-19 13:12 ` [Qemu-devel] " Anthony Liguori
2010-10-19 13:35 ` Michael S. Tsirkin
2010-10-19 13:35 ` [Qemu-devel] " Michael S. Tsirkin
2010-10-19 13:44 ` Stefan Hajnoczi
2010-10-19 13:44 ` [Qemu-devel] " Stefan Hajnoczi
2010-10-19 13:43 ` Michael S. Tsirkin
2010-10-19 13:43 ` [Qemu-devel] " Michael S. Tsirkin
2010-11-10 14:52 ` Stefan Hajnoczi
2010-11-10 14:52 ` [Qemu-devel] " Stefan Hajnoczi
2010-10-19 13:33 ` Michael S. Tsirkin
2010-10-19 13:33 ` [Qemu-devel] " Michael S. Tsirkin
2010-10-25 13:25 ` Stefan Hajnoczi
2010-10-25 13:25 ` [Qemu-devel] " Stefan Hajnoczi
2010-10-25 15:01 ` Stefan Hajnoczi
2010-10-25 15:01 ` [Qemu-devel] " 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=20101019130710.GA3906@stefan-thinkpad.transitives.com \
--to=stefanha@linux.vnet.ibm.com \
--cc=aliguori@us.ibm.com \
--cc=khoa@us.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sri@us.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 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.