From: "Zhang Haoyu" <zhanghy@sangfor.com>
To: Stefan Hajnoczi <stefanha@gmail.com>, Ming Lei <ming.lei@canonical.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
Fam Zheng <famz@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
qemu-devel <qemu-devel@nongnu.org>,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v6 0/3] linux-aio: introduce submit I/O asa batch
Date: Tue, 26 Aug 2014 15:31:19 +0800 [thread overview]
Message-ID: <201408261531174782867@sangfor.com> (raw)
In-Reply-To: 1404468275-15144-1-git-send-email-ming.lei@canonical.com
>> Hi,
>>
>> The commit 580b6b2aa2(dataplane: use the QEMU block layer for I/O)
>> introduces ~40% throughput regression on virtio-blk dataplane, and
>> one of causes is that submitting I/O as a batch is removed.
>>
>> This patchset trys to introduce this mechanism on block, at least,
>> linux-aio can benefit from that.
>>
>> With these patches, it is observed that thoughout on virtio-blk
>> dataplane can be improved a lot, see data in commit log of patch
>> 3/3.
>>
>> It should be possible to apply the batch mechanism to other devices
>> (such as virtio-scsi) too.
>>
>> TODO:
>> - support queuing I/O to multi files for scsi devies, which
>> need some changes to linux-aio
>>
>> V6:
>> - fix requests leak if part of them arn't submitted successfully,
>> pointed by Stefan
>> - linux-aio.c coding style fix
>>
>> V5:
>> - rebase on v2.1.0-rc0 of qemu.git/master
>> - block/linux-aio.c code style fix
>> - don't flush io queue before flush, pointed by Paolo
>>
>> V4:
>> - support other non-raw formats with under-optimized performance
>> - use reference counter for plug & unplug
>> - flush io queue before sending flush command
>>
>> V3:
>> - only support submitting I/O as a batch for raw format, pointed by
>> Kevin
>>
>> V2:
>> - define return value of bdrv_io_unplug as void, suggested by Paolo
>> - avoid busy-wait for handling io_submit
>> V1:
>> - move queuing io stuff into linux-aio.c as suggested by Paolo
>
>Thanks, applied to my block tree:
>https://github.com/stefanha/qemu/commits/block
>
Can we use the queued io data as caches,
io write will directly return and tell the guest the io is completed after the io is enqueued,
better user experience for burst io,
and io-read will firstly search the io queue, if matched data found, directly get the data from the queue,
if not, then read the data from the disk or host page cache.
Any ideas?
Thanks,
Zhang Haoyu
>In Patch 2 we should complete requests with -EIO if io_submit() returned
>0 <= ret < len. I fixed this up when applying because the patch was
>completing with a bogus ret value.
>
>Stefan
next prev parent reply other threads:[~2014-08-26 7:33 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-04 10:04 [Qemu-devel] [PATCH v6 0/3] linux-aio: introduce submit I/O as a batch Ming Lei
2014-07-04 10:04 ` [Qemu-devel] [PATCH v6 1/3] block: block: introduce APIs for submitting IO " Ming Lei
2014-07-04 10:04 ` [Qemu-devel] [PATCH v6 2/3] linux-aio: implement io plug, unplug and flush io queue Ming Lei
2014-07-04 10:04 ` [Qemu-devel] [PATCH v6 3/3] dataplane: submit I/O as a batch Ming Lei
2014-07-07 8:36 ` [Qemu-devel] [PATCH v6 0/3] linux-aio: introduce " Stefan Hajnoczi
2014-08-26 7:31 ` Zhang Haoyu [this message]
2014-08-26 7:45 ` [Qemu-devel] [PATCH v6 0/3] linux-aio: introduce submit I/O asa batch Fam Zheng
2014-08-26 8:38 ` [Qemu-devel] [PATCH v6 0/3] linux-aio: introduce submit I/O asabatch Zhang Haoyu
2014-08-26 7:53 ` [Qemu-devel] [PATCH v6 0/3] linux-aio: introduce submit I/O as a batch Zhang Haoyu
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=201408261531174782867@sangfor.com \
--to=zhanghy@sangfor.com \
--cc=famz@redhat.com \
--cc=kwolf@redhat.com \
--cc=ming.lei@canonical.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
--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).