qemu-img: open files with cache=writeback
Data integrity is not important in qemu-img, so open the files with cache=writeback. This fixes the performance regression seen with qemu-img since revision 5485, and most particularly with the qcow2 format. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5839 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
b8dbdddc9e
commit
137519ce2e
|
@ -30,6 +30,9 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Default to cache=writeback as data integrity is not important for qemu-tcg. */
|
||||||
|
#define BRDV_O_FLAGS BDRV_O_CACHE_WB
|
||||||
|
|
||||||
static void __attribute__((noreturn)) error(const char *fmt, ...)
|
static void __attribute__((noreturn)) error(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
@ -186,7 +189,7 @@ static BlockDriverState *bdrv_new_open(const char *filename,
|
||||||
} else {
|
} else {
|
||||||
drv = NULL;
|
drv = NULL;
|
||||||
}
|
}
|
||||||
if (bdrv_open2(bs, filename, 0, drv) < 0) {
|
if (bdrv_open2(bs, filename, BRDV_O_FLAGS, drv) < 0) {
|
||||||
error("Could not open '%s'", filename);
|
error("Could not open '%s'", filename);
|
||||||
}
|
}
|
||||||
if (bdrv_is_encrypted(bs)) {
|
if (bdrv_is_encrypted(bs)) {
|
||||||
|
@ -317,7 +320,7 @@ static int img_commit(int argc, char **argv)
|
||||||
} else {
|
} else {
|
||||||
drv = NULL;
|
drv = NULL;
|
||||||
}
|
}
|
||||||
if (bdrv_open2(bs, filename, 0, drv) < 0) {
|
if (bdrv_open2(bs, filename, BRDV_O_FLAGS, drv) < 0) {
|
||||||
error("Could not open '%s'", filename);
|
error("Could not open '%s'", filename);
|
||||||
}
|
}
|
||||||
ret = bdrv_commit(bs);
|
ret = bdrv_commit(bs);
|
||||||
|
@ -691,7 +694,7 @@ static int img_info(int argc, char **argv)
|
||||||
} else {
|
} else {
|
||||||
drv = NULL;
|
drv = NULL;
|
||||||
}
|
}
|
||||||
if (bdrv_open2(bs, filename, 0, drv) < 0) {
|
if (bdrv_open2(bs, filename, BRDV_O_FLAGS, drv) < 0) {
|
||||||
error("Could not open '%s'", filename);
|
error("Could not open '%s'", filename);
|
||||||
}
|
}
|
||||||
bdrv_get_format(bs, fmt_name, sizeof(fmt_name));
|
bdrv_get_format(bs, fmt_name, sizeof(fmt_name));
|
||||||
|
|
Loading…
Reference in New Issue