From: Paolo Bonzini <pbonzini@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: kwolf@redhat.com, lcapitulino@redhat.com, qemu-devel@nongnu.org,
stefanha@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [RFC PATCH 23/36] qmp: add drive-mirror command
Date: Wed, 11 Jul 2012 18:23:40 +0200 [thread overview]
Message-ID: <4FFDA88C.6040903@redhat.com> (raw)
In-Reply-To: <4FDB9734.8080809@redhat.com>
Il 15/06/2012 22:12, Eric Blake ha scritto:
> On 06/15/2012 09:05 AM, Paolo Bonzini wrote:
>> > This adds the monitor commands that start the mirroring job.
>> >
>> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> > ---
>> > blockdev.c | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
>> > hmp-commands.hx | 21 ++++++++++
>> > hmp.c | 28 +++++++++++++
>> > hmp.h | 1 +
>> > qapi-schema.json | 33 +++++++++++++++
>> > qmp-commands.hx | 41 +++++++++++++++++++
>> > trace-events | 2 +-
>> > 7 files changed, 242 insertions(+), 4 deletions(-)
>> >
>> > ##
>> > +# @drive-mirror
>> > +#
>> > +# Start mirroring a block device's writes to a new destination.
>> > +#
>> > +# @device: the name of the device whose writes should be mirrored.
>> > +#
>> > +# @target: the target of the new image. If the file exists, or if it
>> > +# is a device, the existing file/device will be used as the new
>> > +# destination. If it does not exist, a new file will be created.
>> > +#
>> > +# @format: #optional the format of the new destination, default is the
>> > +# format of the source
>> > +#
>> > +# @mode: #optional whether and how QEMU should create a new image, default is
>> > +# 'absolute-paths'.
> Indentation.
>
>> > +#
>> > +# @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).
> Document @peed:.
>
>> > +#
>> > +# Returns: nothing on success
>> > +# If @device is not a valid block device, DeviceNotFound
>> > +# If @target can't be opened, OpenFileFailed
>> > +# If @format is invalid, InvalidBlockFormat
>> > +#
>> > +# Since 1.1
> 1.2
>
>> > +##
>> > +{ 'command': 'drive-mirror',
>> > + 'data': { 'device': 'str', 'target': 'str', '*format': 'str',
>> > + 'sync': 'MirrorSyncMode', '*mode': 'NewImageMode',
>> > + '*speed': 'int' } }
>> > +
>> > +##
>> > # @migrate_cancel
>> > #
>> > # Cancel the current executing migration process.
>> > diff --git a/qmp-commands.hx b/qmp-commands.hx
>> > index e2d77b6..cccea2f 100644
>> > --- a/qmp-commands.hx
>> > +++ b/qmp-commands.hx
>> > @@ -832,6 +832,47 @@ Example:
>> > EQMP
>> >
>> > {
>> > + .name = "drive-mirror",
>> > + .args_type = "sync:s,device:B,target:s,sync:s?,format:s?",
> sync: twice? and no speed: or mode:?
>
>
>> > +SQMP
>> > +drive-mirror
>> > +------------
>> > +
>> > +Start mirroring a block device's writes to a new destination. target
>> > +specifies the target of the new image. If the file exists, or if it is
>> > +a device, it will be used as the new destination for writes. If does not
>> > +exist, a new file will be created. format specifies the format of the
>> > +mirror image, default is to probe if mode='existing', else qcow2.
> default is qcow2? Earlier in this patch you said the same format as the
> source.
Indeed, thanks for pointing out all the inconsistencies.
Paolo
next prev parent reply other threads:[~2012-07-11 16:24 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-15 15:05 [Qemu-devel] [RFC PATCH 00/36] A peek at the current block job patches Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 01/36] qapi: generalize documentation of streaming commands Paolo Bonzini
2012-06-15 16:45 ` Eric Blake
2012-07-11 16:00 ` Paolo Bonzini
2012-07-12 8:07 ` Kevin Wolf
2012-07-12 20:41 ` Blue Swirl
2012-07-13 9:13 ` Kevin Wolf
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 02/36] qerror/block: introduce QERR_BLOCK_JOB_NOT_ACTIVE Paolo Bonzini
2012-06-15 16:51 ` Eric Blake
2012-06-15 16:56 ` Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 03/36] block: move job APIs to separate files Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 04/36] block: add block_job_query Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 05/36] block: add support for job pause/resume Paolo Bonzini
2012-06-15 17:22 ` Eric Blake
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 06/36] qmp: add block-job-pause and block-job-resume Paolo Bonzini
2012-06-15 17:32 ` Eric Blake
2012-07-11 16:02 ` Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 07/36] qemu-iotests: add test for pausing a streaming operation Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 08/36] block: rename block_job_complete to block_job_completed Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 09/36] block: rename BlockErrorAction, BlockQMPEventAction Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 10/36] block: move BlockdevOnError declaration to QAPI Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 11/36] block: reorganize io error code Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 12/36] block: sort BlockDeviceIoStatus errors by severity Paolo Bonzini
2012-06-15 17:45 ` Eric Blake
2012-07-11 16:03 ` Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 13/36] block: introduce block job error Paolo Bonzini
2012-06-15 17:50 ` Eric Blake
2012-07-11 16:10 ` Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 14/36] stream: add on_error argument Paolo Bonzini
2012-06-15 17:58 ` Eric Blake
2012-07-11 16:12 ` Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 15/36] qemu-iotests: add tests for streaming error handling Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 16/36] block: add bdrv_query_info Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 17/36] block: add bdrv_query_stats Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 18/36] block: make device optional in BlockInfo Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 19/36] block: add target info to QMP query-blockjobs command Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 20/36] block: forward bdrv_iostatus_reset to block job Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 21/36] block: introduce new dirty bitmap functionality Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 22/36] block: add mirror job Paolo Bonzini
2012-06-15 18:20 ` Eric Blake
2012-07-12 13:45 ` Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 23/36] qmp: add drive-mirror command Paolo Bonzini
2012-06-15 20:12 ` Eric Blake
2012-07-11 16:23 ` Paolo Bonzini [this message]
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 24/36] mirror: support querying target file Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 25/36] mirror: add support for on_source_error/on_target_error Paolo Bonzini
2012-06-15 21:12 ` Eric Blake
2012-07-11 16:28 ` Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 26/36] block: live snapshot documentation tweaks Paolo Bonzini
2012-06-15 21:14 ` Eric Blake
2012-07-11 16:16 ` Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 27/36] block: add bdrv_ensure_backing_file Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 28/36] block: add block-job-complete Paolo Bonzini
2012-06-15 21:42 ` Eric Blake
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 29/36] mirror: implement completion Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 30/36] add hierarchical bitmap data type and test cases Paolo Bonzini
2012-06-15 23:02 ` Eric Blake
2012-07-11 16:35 ` Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 31/36] block: implement dirty bitmap using HBitmap Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 32/36] block: make round_to_clusters public Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 33/36] mirror: perform COW if the cluster size is bigger than the granularity Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 34/36] block: return count of dirty sectors, not chunks Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 35/36] block: allow customizing the granularity of the dirty bitmap Paolo Bonzini
2012-06-15 15:05 ` [Qemu-devel] [RFC PATCH 36/36] mirror: allow customizing the granularity Paolo Bonzini
2012-06-15 23:24 ` Eric Blake
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=4FFDA88C.6040903@redhat.com \
--to=pbonzini@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@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 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).