Kevin Wolf wrote: > Am 08.01.2013 11:39, schrieb Liu Yuan: > > On 01/08/2013 06:00 PM, Kevin Wolf wrote: > >> Am 08.01.2013 10:45, schrieb Liu Yuan: > >>> On 01/08/2013 05:40 PM, Stefan Hajnoczi wrote: > >>>> Otherwise use sheepdog writeback and let QEMU block.c decide when to > >>>> flush. Never use sheepdog writethrough because it's redundant here. > >>> > >>> I don't get it. What do you mean by 'redundant'? If we use virtio & > >>> sheepdog block driver, how can we specify writethrough mode for Sheepdog > >>> cache? Here 'writethrough' means use a pure read cache, which doesn't > >>> need flush at all. > >> > >> A writethrough cache is equivalent to a write-back cache where each > >> write is followed by a flush. qemu makes sure to send these flushes, so > >> there is no need use Sheepdog's writethrough mode. > > > > Implement writethrough as writeback + flush will cause considerable > > overhead for network block device like Sheepdog: a single write request > > will be executed as two requests: write + flush > > Yeah, maybe we should have some kind of a FUA flag with write requests > instead of sending a separate flush.
Note that write+FUA has different semantics than write+flush, at least with regular disks. write+FUA commits just what was written, while write+flush commits everything that was written before. -- Jamie