From: Jamie Lokier <jamie@shareable.org>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
tytso@mit.edu, kvm@vger.kernel.org, Neil Brown <neilb@suse.de>,
qemu-devel@nongnu.org, virtualization@lists.linux-foundation.org,
Jens Axboe <jens.axboe@oracle.com>,
hch@lst.de
Subject: Re: [Qemu-devel] Re: [PATCH] virtio-spec: document block CMD and FLUSH
Date: Tue, 4 May 2010 21:32:55 +0100 [thread overview]
Message-ID: <20100504203255.GB4360@shareable.org> (raw)
In-Reply-To: <201005041408.25069.rusty@rustcorp.com.au>
Rusty Russell wrote:
> On Fri, 19 Feb 2010 08:52:20 am Michael S. Tsirkin wrote:
> > I took a stub at documenting CMD and FLUSH request types in virtio
> > block. Christoph, could you look over this please?
> >
> > I note that the interface seems full of warts to me,
> > this might be a first step to cleaning them.
>
> ISTR Christoph had withdrawn some patches in this area, and was waiting
> for him to resubmit?
>
> I've given up on figuring out the block device. What seem to me to be sane
> semantics along the lines of memory barriers are foreign to disk people: they
> want (and depend on) flushing everywhere.
>
> For example, tdb transactions do not require a flush, they only require what
> I would call a barrier: that prior data be written out before any future data.
> Surely that would be more efficient in general than a flush! In fact, TDB
> wants only writes to *that file* (and metadata) written out first; it has no
> ordering issues with other I/O on the same device.
I've just posted elsewhere on this thread, that an I/O level flush can
be more efficient than an I/O level barrier (implemented using a
cache-flush really), because the barrier has stricter ordering
requirements at the I/O scheduling level.
By the time you work up to tdb, another way to think of it is
distinguishing "eager fsync" from "fsync but I'm not in a hurry -
delay as long as is convenient". The latter makes much more sense
with AIO.
> A generic I/O interface would allow you to specify "this request
> depends on these outstanding requests" and leave it at that. It
> might have some sync flush command for dumb applications and OSes.
For filesystems, it would probably be easy to label in-place
overwrites and fdatasync data flushes when there's no file extension
with an opqaue per-file identifier for certain operations. Typically
over-writing in place and fdatasync would match up and wouldn't need
ordering against anything else. Other operations would tend to get
labelled as ordered against everything including these.
-- Jamie
WARNING: multiple messages have this Message-ID (diff)
From: Jamie Lokier <jamie@shareable.org>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: tytso@mit.edu, kvm@vger.kernel.org,
"Michael S. Tsirkin" <mst@redhat.com>, Neil Brown <neilb@suse.de>,
qemu-devel@nongnu.org, virtualization@lists.linux-foundation.org,
Jens Axboe <jens.axboe@oracle.com>,
hch@lst.de
Subject: Re: [Qemu-devel] Re: [PATCH] virtio-spec: document block CMD and FLUSH
Date: Tue, 4 May 2010 21:32:55 +0100 [thread overview]
Message-ID: <20100504203255.GB4360@shareable.org> (raw)
In-Reply-To: <201005041408.25069.rusty@rustcorp.com.au>
Rusty Russell wrote:
> On Fri, 19 Feb 2010 08:52:20 am Michael S. Tsirkin wrote:
> > I took a stub at documenting CMD and FLUSH request types in virtio
> > block. Christoph, could you look over this please?
> >
> > I note that the interface seems full of warts to me,
> > this might be a first step to cleaning them.
>
> ISTR Christoph had withdrawn some patches in this area, and was waiting
> for him to resubmit?
>
> I've given up on figuring out the block device. What seem to me to be sane
> semantics along the lines of memory barriers are foreign to disk people: they
> want (and depend on) flushing everywhere.
>
> For example, tdb transactions do not require a flush, they only require what
> I would call a barrier: that prior data be written out before any future data.
> Surely that would be more efficient in general than a flush! In fact, TDB
> wants only writes to *that file* (and metadata) written out first; it has no
> ordering issues with other I/O on the same device.
I've just posted elsewhere on this thread, that an I/O level flush can
be more efficient than an I/O level barrier (implemented using a
cache-flush really), because the barrier has stricter ordering
requirements at the I/O scheduling level.
By the time you work up to tdb, another way to think of it is
distinguishing "eager fsync" from "fsync but I'm not in a hurry -
delay as long as is convenient". The latter makes much more sense
with AIO.
> A generic I/O interface would allow you to specify "this request
> depends on these outstanding requests" and leave it at that. It
> might have some sync flush command for dumb applications and OSes.
For filesystems, it would probably be easy to label in-place
overwrites and fdatasync data flushes when there's no file extension
with an opqaue per-file identifier for certain operations. Typically
over-writing in place and fdatasync would match up and wouldn't need
ordering against anything else. Other operations would tend to get
labelled as ordered against everything including these.
-- Jamie
next prev parent reply other threads:[~2010-05-04 20:33 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-18 22:22 [PATCH] virtio-spec: document block CMD and FLUSH Michael S. Tsirkin
2010-02-18 22:22 ` [Qemu-devel] " Michael S. Tsirkin
2010-04-19 21:26 ` Michael S. Tsirkin
2010-04-19 21:26 ` [Qemu-devel] " Michael S. Tsirkin
2010-04-28 15:52 ` Michael S. Tsirkin
2010-04-28 15:52 ` [Qemu-devel] " Michael S. Tsirkin
2010-04-28 15:52 ` Michael S. Tsirkin
2010-04-19 21:26 ` Michael S. Tsirkin
2010-04-20 1:46 ` [Qemu-devel] " Jamie Lokier
2010-04-20 1:46 ` Jamie Lokier
2010-04-20 1:46 ` Jamie Lokier
2010-04-20 13:22 ` Paul Brook
2010-04-20 13:22 ` Paul Brook
2010-04-21 10:39 ` Michael S. Tsirkin
2010-04-21 10:39 ` Michael S. Tsirkin
2010-04-21 10:39 ` Michael S. Tsirkin
2010-04-20 13:22 ` Paul Brook
2010-05-04 18:56 ` Christoph Hellwig
2010-05-04 18:56 ` Christoph Hellwig
2010-05-04 19:01 ` Michael S. Tsirkin
2010-05-04 19:01 ` Michael S. Tsirkin
2010-05-04 19:01 ` Michael S. Tsirkin
2010-05-04 4:38 ` Rusty Russell
2010-05-04 4:38 ` [Qemu-devel] " Rusty Russell
2010-05-04 6:56 ` Stefan Hajnoczi
2010-05-04 6:56 ` Stefan Hajnoczi
2010-05-04 8:34 ` Avi Kivity
2010-05-04 8:34 ` [Qemu-devel] " Avi Kivity
2010-05-04 8:34 ` Avi Kivity
2010-05-04 8:41 ` Jens Axboe
2010-05-04 8:41 ` [Qemu-devel] " Jens Axboe
2010-05-04 20:17 ` Jamie Lokier
2010-05-04 20:17 ` Jamie Lokier
2010-05-05 4:58 ` Rusty Russell
2010-05-05 4:58 ` Rusty Russell
2010-05-05 6:03 ` Neil Brown
2010-05-05 6:03 ` Neil Brown
2010-05-05 6:03 ` Neil Brown
2010-05-06 6:05 ` Rusty Russell
2010-05-06 6:05 ` Rusty Russell
2010-05-06 6:05 ` Rusty Russell
2010-05-06 14:57 ` Jamie Lokier
2010-05-06 14:57 ` Jamie Lokier
2010-05-06 14:57 ` Jamie Lokier
2010-05-06 15:25 ` Jamie Lokier
2010-05-06 15:25 ` Jamie Lokier
2010-05-06 15:25 ` Jamie Lokier
2010-05-05 4:58 ` Rusty Russell
2010-05-04 20:17 ` Jamie Lokier
2010-05-04 8:41 ` Jens Axboe
2010-05-04 10:05 ` Christoph Hellwig
2010-05-04 10:05 ` [Qemu-devel] " Christoph Hellwig
2010-05-04 10:05 ` Christoph Hellwig
2010-05-04 20:32 ` Jamie Lokier [this message]
2010-05-04 20:32 ` [Qemu-devel] " Jamie Lokier
2010-05-04 20:32 ` Jamie Lokier
2010-05-04 4:38 ` Rusty Russell
2010-05-04 18:54 ` Christoph Hellwig
2010-05-04 18:54 ` [Qemu-devel] " Christoph Hellwig
2010-05-04 18:56 ` Michael S. Tsirkin
2010-05-04 18:56 ` Michael S. Tsirkin
2010-05-04 18:56 ` [Qemu-devel] " Michael S. Tsirkin
2010-05-04 18:58 ` Michael S. Tsirkin
2010-05-04 18:58 ` [Qemu-devel] " Michael S. Tsirkin
2010-05-04 18:58 ` Michael S. Tsirkin
2010-05-05 5:00 ` Rusty Russell
2010-05-05 5:00 ` [Qemu-devel] " Rusty Russell
2010-05-05 5:00 ` Rusty Russell
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=20100504203255.GB4360@shareable.org \
--to=jamie@shareable.org \
--cc=hch@lst.de \
--cc=jens.axboe@oracle.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=neilb@suse.de \
--cc=qemu-devel@nongnu.org \
--cc=rusty@rustcorp.com.au \
--cc=tytso@mit.edu \
--cc=virtualization@lists.linux-foundation.org \
/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.