From: Avi Kivity <avi@redhat.com>
To: Badari Pulavarty <pbadari@us.ibm.com>
Cc: kvm@vger.kernel.org
Subject: Re: [RFC] vhost-blk implementation
Date: Tue, 23 Mar 2010 18:53:39 +0200 [thread overview]
Message-ID: <4BA8F213.8030807@redhat.com> (raw)
In-Reply-To: <4BA8D65C.2060605@us.ibm.com>
On 03/23/2010 04:55 PM, Badari Pulavarty wrote:
>> This should be done asynchronously. That is likely the cause of
>> write performance degradation. For reads, readahead means that that
>> you're async anyway, but writes/syncs are still synchronous.
>
> I am not sure what you mean by async here. Even if I use
> f_op->aio_write() its still synchronous (except for DIO). Since we
> are writing to pagecache and not waiting for write()
> to complete, this is the best we can do here.
It fails with O_DIRECT or O_DSYNC, or if the write cache is full and we
need to wait on writeout. Reads that don't hit pagecache will also be
synchronous. You could use threads (like qemu) or use the block layer
(which is async).
>
> Do you mean offload write() handling to another thread ?
Yeah. Read too.
>>
>> I also think it should be done at the bio layer.
> I am not sure what you meant here. Do you want to do submit_bio()
> directly ? Its not going to be that simple. Since the sector# is
> offset within the file, one have to do getblocks() on it
> to find the real-disk-block#s + we have to do get_user_pages() on
> these iovecs before submitting them to bio.. All of this work is done
> by vfs_write()/vfs_read() anyway.. I am not
> sure what you are suggesting here..
For the case where the file is actually a partition, use submit_bio().
When the file is a file, keep it in qemu, that path is going to be
slower anyway.
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2010-03-23 16:53 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-23 1:00 [RFC] vhost-blk implementation Badari Pulavarty
2010-03-23 1:16 ` Anthony Liguori
2010-03-23 1:45 ` Badari Pulavarty
2010-03-23 2:00 ` Anthony Liguori
2010-03-23 2:50 ` Badari Pulavarty
2010-03-23 10:05 ` Avi Kivity
2010-03-23 14:48 ` Badari Pulavarty
2010-03-23 10:03 ` Avi Kivity
2010-03-23 14:55 ` Badari Pulavarty
2010-03-23 16:53 ` Avi Kivity [this message]
2010-03-24 20:05 ` Christoph Hellwig
2010-03-25 6:29 ` Avi Kivity
2010-03-25 15:48 ` Christoph Hellwig
2010-03-25 15:51 ` Avi Kivity
2010-03-25 15:00 ` Asdo
2010-04-05 19:59 ` Christoph Hellwig
2010-04-07 0:36 ` [RFC] vhost-blk implementation (v2) Badari Pulavarty
2010-03-23 10:09 ` [RFC] vhost-blk implementation Eran Rom
2010-03-24 20:04 ` Christoph Hellwig
2010-03-24 20:22 ` Badari Pulavarty
2010-03-25 7:57 ` Avi Kivity
2010-03-25 14:36 ` Badari Pulavarty
2010-03-25 15:57 ` Christoph Hellwig
2010-03-26 18:53 ` Eran Rom
2010-04-08 16:17 ` Stefan Hajnoczi
2010-04-05 19:23 ` Christoph Hellwig
2010-04-05 23:17 ` Badari Pulavarty
2010-03-24 20:27 ` Badari Pulavarty
2010-03-29 15:41 ` Badari Pulavarty
2010-03-29 18:20 ` Chris Wright
2010-03-29 20:37 ` Avi Kivity
2010-03-29 22:51 ` Badari Pulavarty
2010-03-29 23:56 ` Chris Wright
2010-03-30 12:43 ` Avi Kivity
2010-04-05 14:22 ` Stefan Hajnoczi
2010-04-06 2:27 ` Badari Pulavarty
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=4BA8F213.8030807@redhat.com \
--to=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=pbadari@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