[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: |
Benoît Canet |
Subject: |
Re: [Qemu-devel] [RFC V5 20/36] qcow2: Drop hash for a given cluster when dedup makes refcount > 2^16/2. |
Date: |
Mon, 21 Jan 2013 12:51:04 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
> 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).
Currently the qcow2 code doesn't support anything but refcount_order == 4.
In qcow2.c qcow_open there is:
be32_to_cpus(&header.refcount_order);
to get the qcow2 order followed by:
/* Check support for various header values */
if (header.refcount_order != 4) {
report_unsupported(bs, "%d bit reference counts",
1 << header.refcount_order);
ret = -ENOTSUP;
goto fail;
}
I guess the code doesn't need any special handling for now.
> 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).
I'll do that.
Regards
Benoît
- [Qemu-devel] [RFC V5 08/36] qcow2: Implement qcow2_compute_cluster_hash., (continued)
- [Qemu-devel] [RFC V5 08/36] qcow2: Implement qcow2_compute_cluster_hash., Benoît Canet, 2013/01/16
- [Qemu-devel] [RFC V5 34/36] qcow2: Add qcow2_dedup_init and qcow2_dedup_close., Benoît Canet, 2013/01/16
- [Qemu-devel] [RFC V5 09/36] qcow2: Extract qcow2_dedup_grow_table, Benoît Canet, 2013/01/16
- [Qemu-devel] [RFC V5 07/36] qcow2: Add qcow2_dedup_store_new_hashes., Benoît Canet, 2013/01/16
- [Qemu-devel] [RFC V5 33/36] qemu-iotests: Filter dedup=on/off so existing tests don't break., Benoît Canet, 2013/01/16
- [Qemu-devel] [RFC V5 35/36] qcow2: Add qcow2_co_dedup_resume to restart deduplication., Benoît Canet, 2013/01/16
- [Qemu-devel] [RFC V5 31/36] qcow2: Use large L2 table for deduplication., Benoît Canet, 2013/01/16
- [Qemu-devel] [RFC V5 36/36] qcow2: Enable the deduplication feature., Benoît Canet, 2013/01/16
- [Qemu-devel] [RFC V5 20/36] qcow2: Drop hash for a given cluster when dedup makes refcount > 2^16/2., Benoît Canet, 2013/01/16
- [Qemu-devel] [RFC V5 11/36] qcow2: Makes qcow2_alloc_cluster_link_l2 mark to deduplicate clusters., Benoît Canet, 2013/01/16