qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH][block] qcow2: Support exact L1 table growth


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH][block] qcow2: Support exact L1 table growth
Date: Tue, 19 Oct 2010 12:37:17 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.12) Gecko/20100907 Fedora/3.0.7-1.fc12 Thunderbird/3.0.7

Am 18.10.2010 17:53, schrieb Stefan Hajnoczi:
> The L1 table grow operation includes a size calculation that bumps up
> the new L1 table size in order to anticipate the size needs of vmstate
> data.  This helps reduce the number of times that the L1 table has to be
> grown when vmstate data is appended.
> 
> This size overhead is not necessary during image creation,
> bdrv_truncate(), or snapshot goto operations.  In fact, existing
> qemu-iotests that exercise table growth are no longer able to trigger it
> because image creation preallocates an L1 table that is too large after
> changes to qcow_create2().
> 
> This patch keeps the size calculation but also adds exact growth for
> callers that do not want to inflate the L1 table size unnecessarily.
> 
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> ---
>  block/qcow2-cluster.c  |   25 ++++++++++++++++---------
>  block/qcow2-snapshot.c |    2 +-
>  block/qcow2.c          |    2 +-
>  block/qcow2.h          |    2 +-
>  4 files changed, 19 insertions(+), 12 deletions(-)
> 
> Hi Kevin,
> This patch fixes the qcow_create2() issue seen in qemu-iotests 026 with your
> kevin.git/block branch.  The issue was that the L1 table size of new images is
> inflated by qcow2_grow_l1_table().  This caused the differences in the test,
> e.g. L1 table grow tests no longer worked because they couldn't force the 
> table
> to grow (it was already more than large enough).
> 
> If we use exact L1 growth in bdrv_truncate() then less image space is wasted
> and the test passes again without changes to 026.out.
> 
> I think this patch is the way to go, not just to satisfy the test, but also
> because we don't need to overallocate L1 tables to start with.

Good that you took a look at it, I hadn't even thought of changing the
qcow2 code. I agree that this makes sense even independent of qemu-iotests.

The patch looks good to me, too.

Kevin



reply via email to

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