Messages in this thread | | | Date | Tue, 25 Aug 2009 16:16:08 +0200 | From | Christoph Hellwig <> | Subject | Re: [PATCH] virtio-blk: set QUEUE_ORDERED_DRAIN by default |
| |
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.
| |