[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 19/19] block/parallels: optimize linear image ex
From: |
Roman Kagan |
Subject: |
Re: [Qemu-devel] [PATCH 19/19] block/parallels: optimize linear image expansion |
Date: |
Wed, 14 Jan 2015 20:56:13 +0300 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Tue, Dec 30, 2014 at 01:07:12PM +0300, Denis V. Lunev wrote:
> Plain image expansion spends a lot of time to update image file size.
> This seriously affects the performance. The following simple test
> qemu_img create -f parallels -o cluster_size=64k ./1.hds 64G
> qemu_io -n -c "write -P 0x11 0 1024M" ./1.hds
> could be improved if the format driver will pre-allocate some space
> in the image file with a reasonable chunk.
>
> This patch preallocates 128 Mb using bdrv_write_zeroes, which should
> normally use fallocate() call inside. Fallback to older truncate()
> could be used as a fallback using image open options thanks to the
> previous patch.
>
> The benefit is around 15%.
>
> This patch is final in this series. Block driver has near native
> performance now.
>
> Signed-off-by: Denis V. Lunev <address@hidden>
> CC: Kevin Wolf <address@hidden>
> CC: Stefan Hajnoczi <address@hidden>
> ---
> block/parallels.c | 35 +++++++++++++++++++++++++++++++++--
> 1 file changed, 33 insertions(+), 2 deletions(-)
>
> diff --git a/block/parallels.c b/block/parallels.c
> index 12a9cea..5ec4a0d 100644
> --- a/block/parallels.c
> +++ b/block/parallels.c
> @@ -82,6 +82,7 @@ typedef struct BDRVParallelsState {
> int bat_cache_off;
> int data_off;
>
> + int64_t prealloc_off;
This field name confused me. I think "data_end" would fit better.
Otherwise looks good to me.
Roman.
- Re: [Qemu-devel] [PATCH 19/19] block/parallels: optimize linear image expansion,
Roman Kagan <=