summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2009-06-30 13:06:04 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2009-07-09 16:06:37 -0500
commit0aa217e46124e873f75501f7187657e063f5903b (patch)
treeb6d293dd84f7a3bc8eb8a1d9358b1a2f3ccc0a34
parentfc5b81d1f6df7342f0963120b2cf3e919d6fc08a (diff)
downloadqemu-0aa217e46124e873f75501f7187657e063f5903b.tar.gz
qcow2: Make cache=writethrough default
The performance of qcow2 has improved meanwhile, so we don't need to special-case it any more. Switch the default to write-through caching like all other block drivers. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--block.h3
-rw-r--r--block/qcow2.c8
-rw-r--r--qemu-options.hx4
-rw-r--r--vl.c4
4 files changed, 3 insertions, 16 deletions
diff --git a/block.h b/block.h
index b595772c3c..ca5bfff144 100644
--- a/block.h
+++ b/block.h
@@ -37,9 +37,8 @@ typedef struct QEMUSnapshotInfo {
bdrv_file_open()) */
#define BDRV_O_NOCACHE 0x0020 /* do not use the host page cache */
#define BDRV_O_CACHE_WB 0x0040 /* use write-back caching */
-#define BDRV_O_CACHE_DEF 0x0080 /* use default caching */
-#define BDRV_O_CACHE_MASK (BDRV_O_NOCACHE | BDRV_O_CACHE_WB | BDRV_O_CACHE_DEF)
+#define BDRV_O_CACHE_MASK (BDRV_O_NOCACHE | BDRV_O_CACHE_WB)
void bdrv_info(Monitor *mon);
void bdrv_info_stats(Monitor *mon);
diff --git a/block/qcow2.c b/block/qcow2.c
index 20c114b139..9a7c666ee7 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -145,14 +145,6 @@ static int qcow_open(BlockDriverState *bs, const char *filename, int flags)
QCowHeader header;
uint64_t ext_end;
- /* Performance is terrible right now with cache=writethrough due mainly
- * to reference count updates. If the user does not explicitly specify
- * a caching type, force to writeback caching.
- */
- if ((flags & BDRV_O_CACHE_DEF)) {
- flags |= BDRV_O_CACHE_WB;
- flags &= ~BDRV_O_CACHE_DEF;
- }
ret = bdrv_file_open(&s->hd, filename, flags);
if (ret < 0)
return ret;
diff --git a/qemu-options.hx b/qemu-options.hx
index 8947d05393..cadc82293b 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -148,9 +148,7 @@ an internal copy of the data.
Some block drivers perform badly with @option{cache=writethrough}, most notably,
qcow2. If performance is more important than correctness,
-@option{cache=writeback} should be used with qcow2. By default, if no explicit
-caching is specified for a qcow2 disk image, @option{cache=writeback} will be
-used. For all other disk types, @option{cache=writethrough} is the default.
+@option{cache=writeback} should be used with qcow2.
Instead of @option{-cdrom} you can use:
@example
diff --git a/vl.c b/vl.c
index 7b7489c7ce..5189ad537e 100644
--- a/vl.c
+++ b/vl.c
@@ -2239,7 +2239,7 @@ int drive_init(struct drive_opt *arg, int snapshot, void *opaque)
unit_id = -1;
translation = BIOS_ATA_TRANSLATION_AUTO;
index = -1;
- cache = 3;
+ cache = 1;
if (machine->use_scsi) {
type = IF_SCSI;
@@ -2557,8 +2557,6 @@ int drive_init(struct drive_opt *arg, int snapshot, void *opaque)
bdrv_flags |= BDRV_O_NOCACHE;
else if (cache == 2) /* write-back */
bdrv_flags |= BDRV_O_CACHE_WB;
- else if (cache == 3) /* not specified */
- bdrv_flags |= BDRV_O_CACHE_DEF;
if (bdrv_open2(bdrv, file, bdrv_flags, drv) < 0) {
fprintf(stderr, "qemu: could not open disk image %s\n",
file);