[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
- [Qemu-devel] [PATCH 01/19] iotests, parallels: quote TEST_IMG in 076 test to be path-safe, (continued)
- [Qemu-devel] [PATCH 01/19] iotests, parallels: quote TEST_IMG in 076 test to be path-safe, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 05/19] block/parallels: add get_block_status, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 04/19] block/parallels: read up to cluster end in one go, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 07/19] block/parallels: replace magic constants 4, 64 with proper sizeofs, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 08/19] block/parallels: _co_writev callback for Parallels format, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 06/19] block/parallels: provide _co_readv routine for parallels format driver, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 09/19] iotests, parallels: test for write into Parallels image, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 10/19] block/parallels: support parallels image creation, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 13/19] block/parallels: store ParallelsHeader to the BDRVParallelsState, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 11/19] iotests, parallels: test for newly created parallels image via qemu-img, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 16/19] block/parallels: no need to flush on each block allocation table update,
Denis V. Lunev <=
- [Qemu-devel] [PATCH 15/19] block/parallels: rename catalog_ names to bat_, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 12/19] parallels: change copyright information in the image header, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 17/19] block/parallels: delay writing to BAT till bdrv_co_flush_to_os, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 14/19] block/parallels: create catalog_offset helper, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 18/19] block/parallels: add prealloc-mode and prealloc-size open paramemets, Denis V. Lunev, 2014/12/30
- [Qemu-devel] [PATCH 19/19] block/parallels: optimize linear image expansion, Denis V. Lunev, 2014/12/30