From: "Benoît Canet" <benoit@irqsave.net>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, "Benoît Canet" <benoit@irqsave.net>,
stefanha@redhat.com
Subject: [Qemu-devel] [RFC V2 00/20] QCOW2 deduplication
Date: Wed, 17 Oct 2012 18:00:09 +0200 [thread overview]
Message-ID: <1350489629-1838-1-git-send-email-benoit@irqsave.net> (raw)
This patchset is a not yet working draft starting to implement deduplication
in QCOW2.
The Kernel red black trees are indented in kernel style.
I'll be happy to know what is the policy regarding this kind of inclusion
and what tools can be used to make the style compliant.
I am posting this patchset in order to have an early feedback regarding the
design.
Benoît Canet (20):
qcow2: Add deduplication to the qcow2 specification.
qcow2: Add kernel red black trees
qcow2: Add deduplication structures and fields.
qcow2: Add qcow2_dedup_read_missing_and_concatenate
qcow2: Rename update_refcount into qcow2_update_refcount.
qcow2: Add qcow2_dedup and related functions.
qcow2: Add qcow2_dedup_write_new_hashes.
qcow2: Implement qcow2_compute_cluster_hash.
qcow2: Add qcow2_co_load_dedup_hashes.
qcow2: Add qcow2_dedup_grow_table.
qcow2: Load and save deduplication table header extension.
qcow2: Extract qcow2_do_table_init.
qcow2: Add qcow2_dedup_init and qcow2_dedup_close.
qcow2: Extract qcow2_add_feature and qcow2_remove_feature.
block: Add dedup image create option.
qcow2: Allow creation of images using deduplication.
qcow2: Integrate deduplication in qcow2_co_writev loop.
qcow2: Add method to destroy the deduplication red black tree.
qcow2: init and cleanup deduplication.
qemu-iotests: Filter dedup=on/off so existing tests don't break.
Makefile | 3 +
Makefile.objs | 1 +
Makefile.target | 2 +-
block/Makefile.objs | 1 +
block/qcow2-cluster.c | 95 ++++--
block/qcow2-dedup.c | 774 ++++++++++++++++++++++++++++++++++++++++++
block/qcow2-refcount.c | 79 +++--
block/qcow2.c | 247 ++++++++++++--
block/qcow2.h | 72 +++-
block_int.h | 1 +
docs/specs/qcow2.txt | 16 +-
rbtree.c | 389 +++++++++++++++++++++
rbtree.h | 160 +++++++++
tests/qemu-iotests/common.rc | 3 +-
14 files changed, 1749 insertions(+), 94 deletions(-)
create mode 100644 block/qcow2-dedup.c
create mode 100644 rbtree.c
create mode 100644 rbtree.h
--
1.7.10.4
next reply other threads:[~2012-10-17 16:01 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-17 16:00 Benoît Canet [this message]
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 01/20] qcow2: Add deduplication to the qcow2 specification Benoît Canet
2012-10-17 16:28 ` Eric Blake
2012-10-18 9:06 ` Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 02/20] qcow2: Add kernel red black trees Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 03/20] qcow2: Add deduplication structures and fields Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 04/20] qcow2: Add qcow2_dedup_read_missing_and_concatenate Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 05/20] qcow2: Rename update_refcount into qcow2_update_refcount Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 06/20] qcow2: Add qcow2_dedup and related functions Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 07/20] qcow2: Add qcow2_dedup_write_new_hashes Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 08/20] qcow2: Implement qcow2_compute_cluster_hash Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 09/20] qcow2: Add qcow2_co_load_dedup_hashes Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 10/20] qcow2: Add qcow2_dedup_grow_table Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 11/20] qcow2: Load and save deduplication table header extension Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 12/20] qcow2: Extract qcow2_do_table_init Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 13/20] qcow2: Add qcow2_dedup_init and qcow2_dedup_close Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 14/20] qcow2: Extract qcow2_add_feature and qcow2_remove_feature Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 15/20] block: Add dedup image create option Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 16/20] qcow2: Allow creation of images using deduplication Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 17/20] qcow2: Integrate deduplication in qcow2_co_writev loop Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 18/20] qcow2: Add method to destroy the deduplication red black tree Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 19/20] qcow2: init and cleanup deduplication Benoît Canet
2012-10-17 16:00 ` [Qemu-devel] [RFC V2 20/20] qemu-iotests: Filter dedup=on/off so existing tests don't break Benoît Canet
2012-10-17 17:09 ` [Qemu-devel] [RFC V2 00/20] QCOW2 deduplication Avi Kivity
2012-10-18 8:32 ` Benoît Canet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1350489629-1838-1-git-send-email-benoit@irqsave.net \
--to=benoit@irqsave.net \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).