qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH V19 0/8] add-cow file format


From: Wenchao Xia
Subject: Re: [Qemu-devel] [PATCH V19 0/8] add-cow file format
Date: Mon, 22 Jul 2013 13:10:34 +0800
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130620 Thunderbird/17.0.7

于 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]