qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] Default to cache=writeback


From: Alexander Graf
Subject: [Qemu-devel] [PATCH] Default to cache=writeback
Date: Wed, 26 May 2010 20:13:14 +0200

In the previous discussion Anthony brought up the fact that cache=writeback is
safe enough considering data integrity. If so, I don't see a reason not to use
it as default, as it speeds up things a lot.

Keep in mind that most people will want to use cache=none anyways if they want
to bypass the host cache.

To stress my point, I ran the same test I did for cache=unsafe again to compare
cache=write{through,back}.

cache=writeback

real    0m32.549s
user    0m16.069s
sys     0m6.152s

cache=writethrough

real    0m48.055s
user    0m16.677s
sys     0m8.045s

Signed-off-by: Alexander Graf <address@hidden>
---
 qemu-options.hx |   19 +++++++++----------
 vl.c            |    5 ++++-
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/qemu-options.hx b/qemu-options.hx
index cea9b72..b389f36 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -162,16 +162,15 @@ This option specifies the serial number to assign to the 
device.
 Specify the controller's PCI address (if=virtio only).
 @end table
 
-By default, writethrough caching is used for all block device.  This means that
-the host page cache will be used to read and write data but write notification
-will be sent to the guest only when the data has been reported as written by
-the storage subsystem.
-
-Writeback caching will report data writes as completed as soon as the data is
-present in the host page cache.  This is safe as long as you trust your host.
-If your host crashes or loses power, then the guest may experience data
-corruption.  When using the @option{-snapshot} option, writeback caching is
-used by default.
+By default, writeback caching is used for all block devices. It will report
+data writes as completed as soon as the data is present in the host page
+cache.  This is safe as long as you trust your host.  If your host crashes
+or loses power, then the guest may experience data corruption.  When using
+the @option{-snapshot} option, writeback caching is always used.
+
+Writethrough caching means that the host page cache will be used to read
+and write data but write notification will be sent to the guest only when
+the data has been reported as written by the storage subsystem.
 
 The host page cache can be avoided entirely with @option{cache=none}.  This 
will
 attempt to do disk IO directly to the guests memory.  QEMU may still perform
diff --git a/vl.c b/vl.c
index bc15dd7..a70e487 100644
--- a/vl.c
+++ b/vl.c
@@ -917,11 +917,14 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
             bdrv_flags |= BDRV_O_CACHE_WB;
             bdrv_flags |= BDRV_O_NO_FLUSH;
         } else if (!strcmp(buf, "writethrough")) {
-            /* this is the default */
+            /* no special flag needed */
         } else {
            fprintf(stderr, "qemu: invalid cache option\n");
            return NULL;
         }
+    } else {
+        /* default to writeback */
+        bdrv_flags |= BDRV_O_CACHE_WB;
     }
 
 #ifdef CONFIG_LINUX_AIO
-- 
1.6.0.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]