On Sun, Mar 07, 2010 at 04:42:18PM +0200, Avi Kivity wrote: > This means that if I start a guest with cache=writethrough and then > restart (or live migrate) it with cache=none, then the guest will see a > change, even though the user only changed the drive's backing, not > something guest visible. In the case of live migration, the guest will > not even notice the change and we may be at risk of data loss. > > For 0.13 I propose setting enable_write_cache to true unconditionally. > For 0.12 the question is more difficult, since we'll be changing the > guest ABI. Given that guests are unlikely not to be able to cope with > write caches, and that the alternative is data loss, I believe that's > also the right solution there.
Setting it to true unconditionally will cause performance degradation for cache=writethrough devices, as we now have to drain the queue in the guest for no reason at all. I think the better option would be to move the cache setting to qdev property on the block device at it's a device visible setting.