qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC V5 20/36] qcow2: Drop hash for a given cluster whe


From: Eric Blake
Subject: Re: [Qemu-devel] [RFC V5 20/36] qcow2: Drop hash for a given cluster when dedup makes refcount > 2^16/2.
Date: Wed, 16 Jan 2013 10:46:05 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2

On 01/16/2013 09:24 AM, Benoît Canet wrote:
> A new physical cluster with the same hash value will be used for further
> occurence of this hash.

s/occurence/occurrence/

> ---
>  block/qcow2-dedup.c    |   32 ++++++++++++++++++++++++++++++++
>  block/qcow2-refcount.c |    3 +++
>  block/qcow2.h          |    4 ++++
>  3 files changed, 39 insertions(+)
> 

> +++ b/block/qcow2-refcount.c
> @@ -489,6 +489,9 @@ int QEMU_WARN_UNUSED_RESULT 
> update_refcount(BlockDriverState *bs,
>              ret = -EINVAL;
>              goto fail;
>          }
> +        if (s->has_dedup && deduplication && refcount >= 0xFFFF/2) {
> +            qcow2_dedup_refcount_half_max_reached(bs, cluster_index);

You are hardcoding to a width of 16 bits; however, version 3 makes the
refcount field variable-sized:

         96 -  99:  refcount_order
                    Describes the width of a reference count block entry
(width
                    in bits = 1 << refcount_order). For version 2
images, the
                    order is always assumed to be 4 (i.e. the width is
16 bits).


Hmm, what happens if refcount_order is 0 to disable reference counting?
 That setting is valid for creating a qcow2 file that can't be used for
internal snapshots.  But it also interferes with dedup; so you probably
want to add some additional requirements in the spec (patch 1/36) that
when dedup is in use, refcount_order must be a minimum value (or require
that it be exactly 4, for a width of 16 bits).

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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