Paolo Bonzini wrote: > Il 10/01/2013 16:25, Jamie Lokier ha scritto: > >> > Perhaps it's a bug that the cache mode is not reset when the machine is > >> > reset. I haven't checked that, but it would be a valid complaint. > > The question is, is cache=writeback/cache=writethrough an initial > > setting of guest-visible WCE that the guest is allowed to change, or > > is cache=writeththrough a way of saying "don't have a write cache" > > (which may or may not be reflected in the guest-visible disk id). > > It used to be the latter (with reflection in the disk data), but now it > is the former.
Interesting. It could be worth a note in the manual. > > I couldn't tell from QEMU documentation which is intended. It would > > be a bit silly if it means different things for different backend > > storage. > > It means the same thing for IDE, SCSI and virtio-blk. Other backends, > such as SD, do not even have flush, and are really slow with > cache=writethrough because they write one sector at a time. For this > reason they cannot really be used in a "safe" manner. > > > I have seen (obscure) guest code which toggled WCE to simulate FUA, > > That's quite useless, since WCE=1->WCE=0 is documented to cause a flush > (and it does). Might as well send a real flush. It was because the ATA spec seemed to permit the combination of WCE with no flush command supported. So WCE=>1->WCE=0 was used to flush, and kept at WCE=0 for the subsequent logging write-FUA(s), until a non-FUA write was wanted. -- Jamie