From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43692) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBSCV-0006Mk-V8 for qemu-devel@nongnu.org; Wed, 14 Jan 2015 12:57:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YBSCR-0006ef-TV for qemu-devel@nongnu.org; Wed, 14 Jan 2015 12:57:51 -0500 Received: from mx2.parallels.com ([199.115.105.18]:38735) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBSCR-0006ea-O2 for qemu-devel@nongnu.org; Wed, 14 Jan 2015 12:57:47 -0500 Message-ID: <54B6AE13.9020207@openvz.org> Date: Wed, 14 Jan 2015 20:57:39 +0300 From: "Denis V. Lunev" MIME-Version: 1.0 References: <1419931701-19362-1-git-send-email-den@openvz.org> <1419934032-24216-1-git-send-email-den@openvz.org> <1419934032-24216-10-git-send-email-den@openvz.org> <20150114175612.GF27418@rkaganb.sw.ru> In-Reply-To: <20150114175612.GF27418@rkaganb.sw.ru> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 19/19] block/parallels: optimize linear image expansion List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Roman Kagan , Kevin Wolf , qemu-devel@nongnu.org, Stefan Hajnoczi On 14/01/15 20:56, Roman Kagan wrote: > 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 >> CC: Kevin Wolf >> CC: Stefan Hajnoczi >> --- >> 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. agree