From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:46149) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TvW5v-0007BD-7X for qemu-devel@nongnu.org; Wed, 16 Jan 2013 11:44:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TvW5s-0003cu-Jb for qemu-devel@nongnu.org; Wed, 16 Jan 2013 11:44:07 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46246) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TvW5s-0003ci-BX for qemu-devel@nongnu.org; Wed, 16 Jan 2013 11:44:04 -0500 Message-ID: <50F6D8CF.1070509@redhat.com> Date: Wed, 16 Jan 2013 09:43:59 -0700 From: Eric Blake MIME-Version: 1.0 References: <1358351321-4891-1-git-send-email-benoit@irqsave.net> <1358351321-4891-2-git-send-email-benoit@irqsave.net> In-Reply-To: <1358351321-4891-2-git-send-email-benoit@irqsave.net> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="----enig2EDPDNMUNVSOVAWOMTDSD" Subject: Re: [Qemu-devel] [RFC V5 01/62] qcow2: Add deduplication to the qcow2 specification. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QmVub8OudCBDYW5ldA==?= Cc: kwolf@redhat.com, pbonzini@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com This is an OpenPGP/MIME signed message (RFC 4880 and 3156) ------enig2EDPDNMUNVSOVAWOMTDSD Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 01/16/2013 08:47 AM, Beno=C3=AEt Canet wrote: > Signed-off-by: Benoit Canet > --- > docs/specs/qcow2.txt | 104 ++++++++++++++++++++++++++++++++++++++++++= +++++++- > 1 file changed, 102 insertions(+), 2 deletions(-) >=20 > diff --git a/docs/specs/qcow2.txt b/docs/specs/qcow2.txt > index 36a559d..d5f8072 100644 > --- a/docs/specs/qcow2.txt > +++ b/docs/specs/qcow2.txt > @@ -80,7 +80,12 @@ in the description of a field. > tables to repair refcounts before acce= ssing the > image. > =20 > - Bits 1-63: Reserved (set to 0) > + Bit 1: Deduplication bit. If this bit is set= then > + deduplication is used on this image. If this bit is set, you probably want to require that the deduplication header extension is present. > + L2 tables size 64KB is different from > + cluster size 4KB. I'm still not sure what this sentence means. Remember, cluster size of normal disk data is configurable; are you stating that if dedup is in effect, then the cluster size MUST be fixed at 4k (or in other words, that header offsets 20-23 [cluster_bits] must be exactly 12)? And my understanding is that with dedup, there are now two L1 and L2 tables - the normal tables to get at the actual logical data, and the dedup tables for getting at the hashes. Are you stating that both L2 tables are 64k, or that just the dedup L2 is 64k? > =20 > +=3D=3D Deduplication =3D=3D > + > +The deduplication extension contains information concerning deduplicat= ion. Just as I suggested that the deduplication feature bit field above should require this extension be present, here, I would probably require that this extension not be present unless the deduplication feature bit is set. > + > + Byte 0 - 7: Offset of the RAM deduplication table (RAM lookup)= > + > + 8 - 11: Size of the RAM deduplication table =3D number of = L1 64-bit > + pointers > + > + 12: Hash algo enum field > + 0: SHA-256 > + 1: SHA3 > + 2: SKEIN-256 > + > + 13: Dedup strategies bitmap > + 0: RAM based hash lookup (always set to 1 for = now) > + 1: Disk based hash lookup Are these two bits mutually exclusive, or can they both be used at once? > + 2: Deduplication running if set to 1 > + > + 14 - 69: Set to zero and reserved for future use > + > +Disk based lookup structure will be described in a future QCOW2 specif= ication. If so, it may be better to document in this revision of the file that the disk-based hash lookup strategy bit must always be 0 for now. > + > +=3D=3D Deduplication table (RAM method) =3D=3D > + > =3D=3D Host cluster management =3D=3D > =20 > qcow2 manages the allocation of host clusters by maintaining a referen= ce count > @@ -211,7 +311,7 @@ guest clusters to host clusters. They are called L1= and L2 table. > =20 > The L1 table has a variable size (stored in the header) and may use mu= ltiple > clusters, however it must be contiguous in the image file. L2 tables a= re > -exactly one cluster in size. > +exactly one cluster in size excepted for the deduplication case. s/excepted/except/ - and again, is this for all L2 tables, or just the dedup L2 tables? --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org ------enig2EDPDNMUNVSOVAWOMTDSD Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJQ9tjPAAoJEKeha0olJ0Nq34cH/jXAV0WXd1csreNlgfacIJy/ J8/8Ke+1dsa87nWtenyTZRPLzobN1ZeJlSykYWcWheN5H2h7NFWJqTp6IWr7rlnJ fgrObqB7A9hh8Lhlcn3mG26guqZeoEiMFKjawktVa8WJgG5nl94z01jRfDU31vEV 7cNKNrDgoNeVVcGJio91yTtHgpwcFnFE4xbglH0RzWeKRgxy60LlTm5T1hTv9LYl txwglPhplLgMN1B+oIt0ye4QREKTONtBHvSxxbvfX9UUxsudTrLSGVa15BhDM7yX BI7ZyICEVMfnSVxtakLKrRrfVufGh5ejzUf6QKAeO4hp+Ni8BilEkNsCuN00720= =2d1T -----END PGP SIGNATURE----- ------enig2EDPDNMUNVSOVAWOMTDSD--