From: Paolo Bonzini <pbonzini@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>, Ming Lei <ming.lei@canonical.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Fam Zheng <famz@redhat.com>,
qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v4 3/3] dataplane: submit I/O as a batch
Date: Thu, 03 Jul 2014 11:49:34 +0200 [thread overview]
Message-ID: <53B5272E.10703@redhat.com> (raw)
In-Reply-To: <20140703094420.GE4322@noname.redhat.com>
Il 03/07/2014 11:44, Kevin Wolf ha scritto:
> Am 02.07.2014 um 14:18 hat Ming Lei geschrieben:
>> Before commit 580b6b2aa2(dataplane: use the QEMU block
>> layer for I/O), dataplane for virtio-blk submits block
>> I/O as a batch.
>>
>> This commit 580b6b2aa2 replaces the custom linux AIO
>> implementation(including submit I/O as a batch) with QEMU
>> block layer, but this commit causes ~40% throughput regression
>> on virtio-blk performance, and removing submitting I/O
>> as a batch is one of the causes.
>>
>> This patch applies the newly introduced bdrv_io_plug() and
>> bdrv_io_unplug() interfaces to support submitting I/O
>> at batch for Qemu block layer, and in my test, the change
>> can improve throughput by ~30% with 'aio=native'.
>>
>> Following my fio test script:
>>
>> [global]
>> direct=1
>> size=4G
>> bsrange=4k-4k
>> timeout=40
>> numjobs=4
>> ioengine=libaio
>> iodepth=64
>> filename=/dev/vdc
>> group_reporting=1
>>
>> [f]
>> rw=randread
>>
>> Result on one of my small machine(host: x86_64, 2cores, 4thread, guest: 4cores):
>> - qemu master: 59K IOPS
>> - qemu master with these patches: 81K IOPS
>> - 2.0.0 release(dataplane using custom linux aio): 104K IOPS
>>
>> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
>> Signed-off-by: Ming Lei <ming.lei@canonical.com>
>
> Reviewing this one doesn't make sense because commit b002254d
> ('virtio-blk: Unify {non-,}dataplane's request handlings') removes the
> patched code. You need to patch common virtio-blk code now (which should
> improve non-dataplane virtio-blk as well).
Actually no, the second and third hunk still apply. The patch you
mentioned unifies request processing, but the loops that fetches
requests from the virtqueue are still separate. This is because
virtio-blk-dataplane still uses the vring API instead of the generic
virtio API. address_space_map/unmap is not thread-safe yet, vring
avoids it.
Regarding the first hunk, it is not needed at all.
Paolo
next prev parent reply other threads:[~2014-07-03 9:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-02 12:18 [Qemu-devel] [PATCH v4 0/3] linux-aio: introduce submit I/O as a batch Ming Lei
2014-07-02 12:18 ` [Qemu-devel] [PATCH v4 1/3] block: block: introduce APIs for submitting IO as Ming Lei
2014-07-02 12:46 ` Eric Blake
2014-07-03 9:40 ` Kevin Wolf
2014-07-02 12:18 ` [Qemu-devel] [PATCH v4 2/3] linux-aio: implement io plug, unplug and flush io queue Ming Lei
2014-07-03 9:40 ` Kevin Wolf
2014-07-03 9:51 ` Ming Lei
2014-07-03 10:04 ` Paolo Bonzini
2014-07-03 10:45 ` Ming Lei
2014-07-03 10:50 ` Paolo Bonzini
2014-07-03 11:31 ` Ming Lei
2014-07-03 10:22 ` Kevin Wolf
2014-07-03 10:24 ` Ming Lei
2014-07-03 10:30 ` Kevin Wolf
2014-07-03 12:24 ` Stefan Hajnoczi
2014-07-04 9:18 ` Ming Lei
2014-07-04 9:21 ` Ming Lei
2014-07-02 12:18 ` [Qemu-devel] [PATCH v4 3/3] dataplane: submit I/O as a batch Ming Lei
2014-07-03 9:44 ` Kevin Wolf
2014-07-03 9:49 ` Paolo Bonzini [this message]
2014-07-03 10:18 ` Kevin Wolf
2014-07-03 12:35 ` Stefan Hajnoczi
2014-07-03 12:37 ` Stefan Hajnoczi
2014-07-03 12:47 ` Ming Lei
2014-07-03 9:25 ` [Qemu-devel] [PATCH v4 0/3] linux-aio: introduce " Kevin Wolf
2014-07-03 12:36 ` 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=53B5272E.10703@redhat.com \
--to=pbonzini@redhat.com \
--cc=famz@redhat.com \
--cc=kwolf@redhat.com \
--cc=ming.lei@canonical.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@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 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).