All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
To: Dongxu Wang <wdongxu@linux.vnet.ibm.com>
Cc: kwolf@redhat.com, wdongxu@cn.ibm.com, qemu-devel@nongnu.org,
	stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH V19 0/8] add-cow file format
Date: Mon, 22 Jul 2013 13:10:34 +0800	[thread overview]
Message-ID: <51ECBECA.1070007@linux.vnet.ibm.com> (raw)
In-Reply-To: <1369908025-9556-1-git-send-email-wdongxu@linux.vnet.ibm.com>

于 2013-5-30 18:00, Dongxu Wang 写道:
> It will introduce a new file format: add-cow.
> 
> The add-cow file format makes it possible to perform copy-on-write on top of
> a raw disk image.  When we know that no backing file clusters remain visible
> (e.g. we have streamed the entire image and copied all data from the backing
> file), then it is possible to discard the add-cow file and use the raw image
> file directly.
> 
> This feature adds the copy-on-write feature to raw files (which cannot support
> it natively) while allowing us to get full performance again later when we no
> longer need copy-on-write.
> 
> add-cow can benefit from other available functions, such as path_has_protocol
> and qed_read_string, so we will make them public.
> 
> snapshot_blkdev are not supported now for add-cow. Will add it in futher patches.
> 
> These patches are using QemuOpts parser, former patches could be found here:
> http://patchwork.ozlabs.org/patch/247508/
> 
> 
> v18->v19:
> 1) support parallel aio write.
> 2) fix flush method.
> 3) other small fix.
> v17 -> v18:
> 1) remove version field.
> 2) header size is maximum value and cluster size value.
> 3) fix type.
> 4) move struct to source file.
> 5) cluster_size->table_size.
> 6) use error_report, not fprintf.
> 7) remove version field from header.
> 8) header_size is MAX(cluster_size, 4096).
> 9) introduce s->cluster_sectors.
> 10) use BLKDBG_L2_LOAD/UPDATE.
> 11) add 037 and 038 tests.
> 
> v16->v17):
> 1) Use stringify.
> 
> v15->v16):
> 1) Rebased on QEMU upstream source tree.
> 2) Judge if opts is null in add_cow_create function.
> 
> v14->v15:
> 1) Fix typo and make some sentences more readable in docs.
> 2) Introduce STRINGIZER macro.
> 
> v13->v14:
> 1) Make some sentences more clear in docs.
> 2) Make MAGIC from 8 bytes to 4 bytes.
> 3) Fix some bugs.
> 
> v12->v13:
> 1) Use QemuOpts, not QEMUOptionParameter
> 2) cluster_size configuable
> 3) Refactor block-cache.c
> 4) Correct qemu-iotests script.
> 5) Other bug fix.
> 
> v11->v12:
> 1) Removed un-used feature bit.
> 2) Share cache code with qcow2.c.
> 3) Remove snapshot_blkdev support, will add it in another patch.
> 5) COW Bitmap field in add-cow file will be multiple of 65536.
> 6) fix grammer and typo.
> 
> Dong Xu Wang (8):
>    V18: docs: document for add-cow file format
>    make path_has_protocol non static
>    qed_read_string to bdrv_read_string
>    rename qcow2-cache.c to block-cache.c
>    Make block-cache.c be common interface
>    add debug event for add-cow
>    add-cow file format core code.
>    qemu-iotests: add add-cow iotests support
> 
>   block.c                      |  29 +-
>   block/Makefile.objs          |   4 +-
>   block/add-cow.c              | 812 +++++++++++++++++++++++++++++++++++++++++++
>   block/blkdebug.c             |   3 +
>   block/block-cache.c          | 342 ++++++++++++++++++
>   block/qcow2-cache.c          | 323 -----------------
>   block/qcow2-cluster.c        |  52 +--
>   block/qcow2-refcount.c       |  62 ++--
>   block/qcow2.c                |  21 +-
>   block/qcow2.h                |  24 +-
>   block/qed.c                  |  34 +-
>   docs/specs/add-cow.txt       | 172 +++++++++
>   include/block/block-cache.h  |  59 ++++
>   include/block/block.h        |   6 +
>   include/block/block_int.h    |   2 +
>   tests/qemu-iotests/017       |   2 +-
>   tests/qemu-iotests/020       |   2 +-
>   tests/qemu-iotests/037       |   2 +-
>   tests/qemu-iotests/038       |   2 +-
>   tests/qemu-iotests/common    |   6 +
>   tests/qemu-iotests/common.rc |  15 +-
>   trace-events                 |  13 +-
>   22 files changed, 1536 insertions(+), 451 deletions(-)
>   create mode 100644 block/add-cow.c
>   create mode 100644 block/block-cache.c
>   delete mode 100644 block/qcow2-cache.c
>   create mode 100644 docs/specs/add-cow.txt
>   create mode 100644 include/block/block-cache.h
> 
  To add dirty block tracking about block, I think add-cow file format
will help, hope it can progress fast.

-- 
Best Regards

Wenchao Xia

      parent reply	other threads:[~2013-07-22  5:11 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-30 10:00 [Qemu-devel] [PATCH V19 0/8] add-cow file format Dongxu Wang
2013-05-30 10:00 ` [Qemu-devel] [PATCH V19 1/8] V18: docs: document for " Dongxu Wang
2013-06-03  1:48   ` Fam Zheng
2013-06-03  1:55     ` Dongxu Wang
2013-05-30 10:00 ` [Qemu-devel] [PATCH V19 2/8] make path_has_protocol non static Dongxu Wang
2013-05-30 10:00 ` [Qemu-devel] [PATCH V19 3/8] qed_read_string to bdrv_read_string Dongxu Wang
2013-05-30 10:00 ` [Qemu-devel] [PATCH V19 4/8] rename qcow2-cache.c to block-cache.c Dongxu Wang
2013-05-30 10:00 ` [Qemu-devel] [PATCH V19 5/8] Make block-cache.c be common interface Dongxu Wang
2013-05-30 10:00 ` [Qemu-devel] [PATCH V19 6/8] add debug event for add-cow Dongxu Wang
2013-06-05 13:35   ` Stefan Hajnoczi
2013-06-05 13:46   ` Kevin Wolf
2013-06-06  7:30     ` Stefan Hajnoczi
2013-05-30 10:00 ` [Qemu-devel] [PATCH V19 7/8] add-cow file format core code Dongxu Wang
2013-06-05 14:21   ` Stefan Hajnoczi
2013-05-30 10:00 ` [Qemu-devel] [PATCH V19 8/8] qemu-iotests: add add-cow iotests support Dongxu Wang
2013-06-03  1:47 ` [Qemu-devel] [PATCH V19 0/8] add-cow file format Fam Zheng
2013-07-22  5:10 ` Wenchao Xia [this message]

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=51ECBECA.1070007@linux.vnet.ibm.com \
    --to=xiawenc@linux.vnet.ibm.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=wdongxu@cn.ibm.com \
    --cc=wdongxu@linux.vnet.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.