[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1.2 0/7] Manual writethrough cache and cache mode to
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 1.2 0/7] Manual writethrough cache and cache mode toggle |
Date: |
Tue, 22 May 2012 18:17:11 +0200 |
This is an alternative implementation of writethrough caching. By always
opening protocols in writethrough mode and doing flushes manually after
every write, it achieves two results: 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.
In practice, the performance result is a wash. I measured "make -j3
vmlinux" on a 2-core guest/4-core host, with 2GB memory in the guest
and 8GB in the host.
Performance was measured starting qemu-kvm with an empty qcow2 image,
a virtio disk and cache=writethrough (F16 installation + exploded kernel
tarball in the backing file), and the results are as follows:
without patch:
real 9m22.416s user 12m8.955s sys 3m46.331s
real 9m21.602s user 12m20.124s sys 3m51.126s
real 9m22.258s user 12m14.900s sys 3m48.595s
with patch:
real 9m17.617s user 12m16.837s sys 3m48.637s
real 9m18.926s user 12m20.083s sys 3m50.458s
real 9m15.751s user 12m41.944s sys 3m56.447s
Unlike the RFC, this is tested exactly with these seven patches. The RFC
was tested with follow-up cleanups that hid the problem in patch 3.
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: always open protocol in writeback mode
block: copy enable_write_cache in bdrv_append
block: add bdrv_set_enable_write_cache
ide: support enable/disable write cache
qcow2: always operate caches in writeback mode
block.c | 20 +++++++++++++++++---
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 | 18 +++++++++++++++---
savevm.c | 2 +-
8 files changed, 39 insertions(+), 51 deletions(-)
- [Qemu-devel] [PATCH 1.2 0/7] Manual writethrough cache and cache mode toggle,
Paolo Bonzini <=
[Qemu-devel] [PATCH 1.2 4/7] block: copy enable_write_cache in bdrv_append, Paolo Bonzini, 2012/05/22
[Qemu-devel] [PATCH 1.2 5/7] block: add bdrv_set_enable_write_cache, Paolo Bonzini, 2012/05/22