Re: [PATCH] virtio-blk: set QUEUE_ORDERED_DRAIN by default

Christoph Hellwig
2009-08-25T14:16:25Z

On Tue, Aug 25, 2009 at 11:41:37PM +0930, Rusty Russell wrote:
> On Fri, 21 Aug 2009 06:26:16 am Christoph Hellwig wrote:
> > Currently virtio-blk doesn't set any QUEUE_ORDERED_ flag by default, which
> > means it does not allow filesystems to use barriers. But the typical use
> > case for virtio-blk is to use a backed that uses synchronous I/O
>
> Really? Does qemu open with O_SYNC?
>
> I'm definitely no block expert, but this seems strange...
> Rusty.

Qemu can open it various ways, but the only one that is fully safe
is O_SYNC (cache=writethrough). The O_DIRECT (cache=none) option is also
fully safe with the above patch under some limited circumstances
(disk write caches off and using a host device or fully allocated file).

Fixing the cache=writeback option and the majority case for cache=none
requires implementing a cache flush command, and for the latter one
also fixes to the host kernel I'm working on. You will get another
patch to implement the proper cache controls in virtio-blk for me in
a couple of days, too.