This is v3 of the alternative implementation of writethrough caching
for QEMU 1.2. By always opening drivers in writethrough mode and
doing flushes manually after every write, it achieves three objectives:
1) it makes flipping the cache mode extremely easy; 2) it lets formats
control flushes during metadata updates even in writethrough mode,
which makes the updates more efficient; 3) it makes cache=writethrough
automatically flush metadata without needing extra work in the formats.
The last point should also make implementation of "QED mode" a little
bit simpler.
v2->v3: patch 3 changed again to always add the flag. Patches reordered,
the new order is better now that BDRV_O_CACHE_WB is added to all
BlockDriverStates now.
v1->v2: only patch 3 changed, was completely backwards in v1
Paolo Bonzini (7):
block: flush in writethrough mode after writes
savevm: flush after saving vm state
block: copy enable_write_cache in bdrv_append
block: add bdrv_set_enable_write_cache
block: always open drivers in writeback mode
ide: support enable/disable write cache
qcow2: always operate caches in writeback mode
block.c | 29 +++++++++++++++++++++++++----
block.h | 1 +
block/qcow2-cache.c | 25 ++-----------------------
block/qcow2-refcount.c | 12 ------------
block/qcow2.c | 7 ++-----
block/qcow2.h | 5 +----
hw/ide/core.c | 21 ++++++++++++++++++---
savevm.c | 2 +-
8 files changed, 50 insertions(+), 52 deletions(-)
--
1.7.10.1