On 11/10/2014 06:45 AM, Max Reitz wrote: > qcow2_alloc_bytes() may reuse a cluster multiple times, in which case > the refcount is increased accordingly. However, if this would lead to an > overflow the function should instead just not reuse this cluster and > allocate a new one.
So if recount_order is 1 (2 bits per refcount, max refcount of 4), and we encounter the same cluster 6 times (say by 5 back-to-back internal snapshots), does this code optimize to only 2 clusters (both with refcount 3) or does it result in each of the last 3 clusters spilling to its own 1-ref cluster for a total of 4 clusters? Short of Benoit's work on deduplication, is there even a way to avoid inefficient use of spilled clusters? But I guess answering that can be a separate patch; inefficiency is annoying, but not technically wrong and therefore not a reason to reject this one. > > Signed-off-by: Max Reitz <mre...@redhat.com> > --- > block/qcow2-refcount.c | 32 ++++++++++++++++++++++++++++++-- > 1 file changed, 30 insertions(+), 2 deletions(-) > Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature