qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 16/19] block/parallels: no need to flush on each blo


From: Denis V. Lunev
Subject: [Qemu-devel] [PATCH 16/19] block/parallels: no need to flush on each block allocation table update
Date: Tue, 30 Dec 2014 13:07:09 +0300

>From the point of guest each write to real disk prior to disk barrier
operation could be lost. Therefore there is no problem that "not synced"
new block is lost due to not updated allocation table if QEMU is crashed.

This patch improves writing performance of
  qemu-img create -f parallels -o cluster_size=64k ./1.hds 64G
  qemu-io -f parallels -c "write -P 0x11 0 1024k" 1.hds
from 45 Mb/sec to 160 Mb/sec on my SSD disk. The gain on rotational media
is much more sufficient, from 800 Kb/sec to 45 Mb/sec.

Signed-off-by: Denis V. Lunev <address@hidden>
CC: Kevin Wolf <address@hidden>
CC: Stefan Hajnoczi <address@hidden>
---
 block/parallels.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/parallels.c b/block/parallels.c
index ddc3aee..46cf031 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -194,7 +194,7 @@ static int64_t allocate_sector(BlockDriverState *bs, 
int64_t sector_num)
 
     tmp = cpu_to_le32(s->bat[idx]);
 
-    ret = bdrv_pwrite_sync(bs->file, bat_offset(idx), &tmp, sizeof(tmp));
+    ret = bdrv_pwrite(bs->file, bat_offset(idx), &tmp, sizeof(tmp));
     if (ret < 0) {
         return ret;
     }
-- 
1.9.1




reply via email to

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