Le jeudi 21 octobre 2010 à 10:07 -0500, Anthony Liguori a écrit : > On 10/21/2010 09:07 AM, Kevin Wolf wrote: > > Hi all, > > > > I'm currently looking into adding a return value to qemu's bdrv_flush > > function and I noticed that your block drivers (nbd, rbd and sheepdog) > > don't implement bdrv_flush at all. bdrv_flush is going to return > > -ENOTSUP for any block driver not implementing this, effectively > > breaking these three drivers for anything but cache=unsafe. > > > > Is there a specific reason why your drivers don't implement this? > > NBD doesn't have a notion of flush. Only read/write and the block-nbd > implementation doesn't do write-caching so flush would be a nop. > > I'm not sure what the right semantics would be for QEMU. My guess is a > nop flush.
I agree. Regards, Laurent > Regards, > > Anthony Liguori > > > I > > think I remember that one of the drivers always provides > > cache=writethough semantics. It would be okay to silently "upgrade" to > > cache=writethrough, so in this case I'd just need to add an empty > > bdrv_flush implementation. > > > > Otherwise, we really cannot allow any option except cache=unsafe because > > that's the semantics provided by the driver. > > > > In any case, I think it would be a good idea to implement a real > > bdrv_flush function to allow the write-back cache modes cache=off and > > cache=writeback in order to improve performance over writethrough. > > > > Is this possible with your protocols, or can the protocol be changed to > > consider this? Any hints on how to proceed? > > > > Kevin > > > > > -- --------------------- laur...@vivier.eu ---------------------- "Tout ce qui est impossible reste à accomplir" Jules Verne "Things are only impossible until they're not" Jean-Luc Picard