qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Amit Shah <amit.shah@redhat.com>
To: zhanghailiang <zhang.zhanghailiang@huawei.com>
Cc: quintela@redhat.com, qemu-devel@nongnu.org, dgilbert@redhat.com,
	wency@cn.fujitsu.com, lizhijian@cn.fujitsu.com,
	xiecl.fnst@cn.fujitsu.com, Gonglei <arei.gonglei@huawei.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH COLO-Frame (Base) v21 06/17] COLO: Introduce checkpointing protocol
Date: Wed, 26 Oct 2016 10:55:14 +0530	[thread overview]
Message-ID: <20161026052514.GF1679@amit-lp.rh> (raw)
In-Reply-To: <1476792613-11712-7-git-send-email-zhang.zhanghailiang@huawei.com>

On (Tue) 18 Oct 2016 [20:10:02], zhanghailiang wrote:
> We need communications protocol of user-defined to control
> the checkpointing process.
> 
> The new checkpointing request is started by Primary VM,
> and the interactive process like below:
> 
> Checkpoint synchronizing points:
> 
>                    Primary               Secondary
>                                             initial work
> 'checkpoint-ready'    <-------------------- @
> 
> 'checkpoint-request'  @ -------------------->
>                                             Suspend (Only in hybrid mode)
> 'checkpoint-reply'    <-------------------- @
>                       Suspend&Save state
> 'vmstate-send'        @ -------------------->
>                       Send state            Receive state
> 'vmstate-received'    <-------------------- @
>                       Release packets       Load state
> 'vmstate-load'        <-------------------- @
>                       Resume                Resume (Only in hybrid mode)
> 
>                       Start Comparing (Only in hybrid mode)
> NOTE:
>  1) '@' who sends the message
>  2) Every sync-point is synchronized by two sides with only
>     one handshake(single direction) for low-latency.
>     If more strict synchronization is required, a opposite direction
>     sync-point should be added.
>  3) Since sync-points are single direction, the remote side may
>     go forward a lot when this side just receives the sync-point.
>  4) For now, we only support 'periodic' checkpoint, for which
>    the Secondary VM is not running, later we will support 'hybrid' mode.
> 
> Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
> Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
> Cc: Eric Blake <eblake@redhat.com>
> Cc: Markus Armbruster <armbru@redhat.com>
> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

Reviewed-by: Amit Shah <amit.shah@redhat.com>

> +static int colo_do_checkpoint_transaction(MigrationState *s)
> +{
> +    Error *local_err = NULL;
> +
> +    colo_send_message(s->to_dst_file, COLO_MESSAGE_CHECKPOINT_REQUEST,
> +                      &local_err);
> +    if (local_err) {
> +        goto out;
> +    }
> +
> +    colo_receive_check_message(s->rp_state.from_dst_file,
> +                    COLO_MESSAGE_CHECKPOINT_REPLY, &local_err);
> +    if (local_err) {
> +        goto out;
> +    }
> +
> +    /* TODO: suspend and save vm state to colo buffer */

I like how you've split up the patches - makes it easier to review.
Thanks for doing this!

> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -785,6 +785,31 @@
>  { 'command': 'migrate-start-postcopy' }
>  
>  ##
> +# @COLOMessage
> +#
> +# The message transmission between PVM and SVM

Can you expand PVM and SVM for the first use?  It's obvious to someone
who's familiar with COLO, but someone looking at the api may not know
what it all means.  Also, please expand COLO if not already done in
the qapi-schema file.


		Amit

  reply	other threads:[~2016-10-26  5:25 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-18 12:09 [Qemu-devel] [PATCH COLO-Frame (Base) v21 00/17] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) zhanghailiang
2016-10-18 12:09 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 01/17] migration: Introduce capability 'x-colo' to migration zhanghailiang
2016-10-26  4:32   ` Amit Shah
2016-10-18 12:09 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 02/17] COLO: migrate COLO related info to secondary node zhanghailiang
2016-10-26  4:35   ` Amit Shah
2016-10-18 12:09 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 03/17] migration: Enter into COLO mode after migration if COLO is enabled zhanghailiang
2016-10-26  4:50   ` Amit Shah
2016-10-26 13:49     ` Hailiang Zhang
2016-10-27  3:58       ` Amit Shah
2016-10-27  6:10         ` Hailiang Zhang
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 04/17] migration: Switch to COLO process after finishing loadvm zhanghailiang
2016-10-26  5:01   ` Amit Shah
2016-10-26 13:55     ` Hailiang Zhang
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 05/17] COLO: Establish a new communicating path for COLO zhanghailiang
2016-10-26  5:06   ` Amit Shah
2016-10-26 14:05     ` Hailiang Zhang
2016-10-27  3:57       ` Amit Shah
2016-10-27  6:06         ` Hailiang Zhang
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 06/17] COLO: Introduce checkpointing protocol zhanghailiang
2016-10-26  5:25   ` Amit Shah [this message]
2016-10-26 14:18     ` Hailiang Zhang
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 07/17] COLO: Add a new RunState RUN_STATE_COLO zhanghailiang
2016-10-26  7:06   ` Amit Shah
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 08/17] COLO: Send PVM state to secondary side when do checkpoint zhanghailiang
2016-10-26  5:36   ` Amit Shah
2016-10-26  5:37   ` Amit Shah
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 09/17] COLO: Load VMState into QIOChannelBuffer before restore it zhanghailiang
2016-10-26  5:40   ` Amit Shah
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 10/17] COLO: Add checkpoint-delay parameter for migrate-set-parameters zhanghailiang
2016-10-26  5:45   ` Amit Shah
2016-10-26 13:39     ` Eric Blake
2016-10-26 14:43       ` Hailiang Zhang
2016-10-26 14:40     ` Hailiang Zhang
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 11/17] COLO: Synchronize PVM's state to SVM periodically zhanghailiang
2016-10-26  5:46   ` Amit Shah
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 12/17] COLO: Add 'x-colo-lost-heartbeat' command to trigger failover zhanghailiang
2016-10-26  5:51   ` Amit Shah
2016-10-26 13:59     ` Dr. David Alan Gilbert
2016-10-26 15:32       ` Hailiang Zhang
2016-10-26 14:50     ` Hailiang Zhang
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 13/17] COLO: Introduce state to record failover process zhanghailiang
2016-10-26  5:54   ` Amit Shah
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 14/17] COLO: Implement the process of failover for primary VM zhanghailiang
2016-10-26  5:58   ` Amit Shah
2016-10-26 14:59     ` Hailiang Zhang
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 15/17] COLO: Implement failover work for secondary VM zhanghailiang
2016-10-26  5:59   ` Amit Shah
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 16/17] docs: Add documentation for COLO feature zhanghailiang
2016-10-26  6:06   ` Amit Shah
2016-10-18 12:10 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 17/17] configure: Support enable/disable " zhanghailiang
2016-10-26  6:07   ` Amit Shah
2016-10-26 13:42     ` Eric Blake
2016-10-26 15:11       ` Hailiang Zhang
2016-10-27  3:54       ` Amit Shah
2016-10-26 15:09     ` Hailiang Zhang
2016-10-26  6:09 ` [Qemu-devel] [PATCH COLO-Frame (Base) v21 00/17] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) Amit Shah
2016-10-26  6:43   ` Hailiang Zhang
2016-10-26  8:26     ` Amit Shah
2016-10-26  9:53       ` Li Zhijian
2016-10-26 10:17         ` Li Zhijian
2016-10-26 10:14       ` Li Zhijian
2016-10-26 15:52       ` Hailiang Zhang
2016-10-27  3:52         ` Amit Shah
2016-10-27  5:55           ` Hailiang Zhang

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=20161026052514.GF1679@amit-lp.rh \
    --to=amit.shah@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=armbru@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=lizhijian@cn.fujitsu.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=wency@cn.fujitsu.com \
    --cc=xiecl.fnst@cn.fujitsu.com \
    --cc=zhang.zhanghailiang@huawei.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).