Messages in this thread | | | Date | Fri, 06 Jul 2012 08:47:39 +0200 | From | Paolo Bonzini <> | Subject | Re: [PATCH] virtio-blk: allow toggling host cache between writeback and writethrough |
| |
Il 05/07/2012 20:39, Badari Pulavarty ha scritto: > On Tue, 2012-07-03 at 15:19 +0200, Paolo Bonzini wrote: >> This patch adds support for the new VIRTIO_BLK_F_CONFIG_WCE feature, >> which exposes the cache mode in the configuration space and lets the >> driver modify it. The cache mode is exposed via sysfs. >> >> Even if the host does not support the new feature, the cache mode is >> visible (thanks to the existing VIRTIO_BLK_F_WCE), but not modifiable. >> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> >> --- > > Hi Paolo, > > Curious - What is the host side change to support this ? QEMU would > close and re-open the device/file with the corresponding flags > (O_SYNC) ?
QEMU is not using O_SYNC anymore; instead, it manually issues a flush after each write. We found this didn't penalize performance (in fact, for qcow2 metadata writes the fdatasyncs will be more coarse and there is a small improvement). So, when you toggle writethrough to writeback QEMU simply has to stop forcing flushes, and vice versa if you go to writethrough.
> And also, is there a way to expose cache=none (O_DIRECT) to the guest ?
Not yet. The main problem is that while we can invent something in virtio-blk, I'm not sure if there is an equivalent in SCSI for example.
Paolo
| |