[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v5 10/21] qmp: Add support of "dirty-bitmap" syn
From: |
Eric Blake |
Subject: |
Re: [Qemu-block] [PATCH v5 10/21] qmp: Add support of "dirty-bitmap" sync mode for drive-backup |
Date: |
Fri, 17 Apr 2015 16:51:08 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
On 04/08/2015 04:19 PM, John Snow wrote:
> For "dirty-bitmap" sync mode, the block job will iterate through the
> given dirty bitmap to decide if a sector needs backup (backup all the
> dirty clusters and skip clean ones), just as allocation conditions of
> "top" sync mode.
>
> Signed-off-by: Fam Zheng <address@hidden>
> Signed-off-by: John Snow <address@hidden>
> ---
> block.c | 9 +++
> block/backup.c | 156
> +++++++++++++++++++++++++++++++++++++++-------
> block/mirror.c | 4 ++
> blockdev.c | 18 +++++-
> hmp.c | 3 +-
> include/block/block.h | 1 +
> include/block/block_int.h | 2 +
> qapi/block-core.json | 13 ++--
> qmp-commands.hx | 7 ++-
> 9 files changed, 180 insertions(+), 33 deletions(-)
>
Just reviewing the interface...
> +++ b/qapi/block-core.json
> @@ -512,10 +512,12 @@
> #
> # @none: only copy data written from now on
> #
> +# @dirty-bitmap: only copy data described by the dirty bitmap. Since: 2.4
> +#
> # Since: 1.3
> ##
> { 'enum': 'MirrorSyncMode',
> - 'data': ['top', 'full', 'none'] }
> + 'data': ['top', 'full', 'none', 'dirty-bitmap'] }
>
> ##
> # @BlockJobType:
> @@ -690,14 +692,17 @@
> # probe if @mode is 'existing', else the format of the source
> #
> # @sync: what parts of the disk image should be copied to the destination
> -# (all the disk, only the sectors allocated in the topmost image, or
> -# only new I/O).
> +# (all the disk, only the sectors allocated in the topmost image,
> from a
> +# dirty bitmap, or only new I/O).
> #
> # @mode: #optional whether and how QEMU should create a new image, default is
> # 'absolute-paths'.
> #
> # @speed: #optional the maximum speed, in bytes per second
> #
> +# @bitmap: #optional the name of dirty bitmap if sync is "dirty-bitmap"
> +# (Since 2.4)
> +#
> # @on-source-error: #optional the action to take on an error on the source,
> # default 'report'. 'stop' and 'enospc' can only be used
> # if the block device supports io-status (see BlockInfo).
> @@ -715,7 +720,7 @@
> { 'type': 'DriveBackup',
> 'data': { 'device': 'str', 'target': 'str', '*format': 'str',
> 'sync': 'MirrorSyncMode', '*mode': 'NewImageMode',
> - '*speed': 'int',
> + '*speed': 'int', '*bitmap': 'str',
Looks okay. Is it an error if bitmap is supplied, but mode is not
dirty-bitmap? Likewise, if mode is dirty-bitmap but bitmap is not supplied?
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-block] [PATCH v5 09/21] block: Add bitmap successors, (continued)
- [Qemu-block] [PATCH v5 09/21] block: Add bitmap successors, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 08/21] block: Add bitmap disabled status, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 13/21] block: add BdrvDirtyBitmap documentation, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 12/21] qmp: Add dirty bitmap status field in query-block, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 10/21] qmp: Add support of "dirty-bitmap" sync mode for drive-backup, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 11/21] qmp: add block-dirty-bitmap-clear, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 14/21] block: Ensure consistent bitmap function prototypes, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 15/21] block: Resize bitmaps on bdrv_truncate, John Snow, 2015/04/08
- [Qemu-block] [PATCH v5 16/21] hbitmap: truncate tests, John Snow, 2015/04/08