qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH COLO-Frame v9 09/32] COLO: Implement colo checkp


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH COLO-Frame v9 09/32] COLO: Implement colo checkpoint protocol
Date: Wed, 21 Oct 2015 06:17:03 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 09/02/2015 02:22 AM, zhanghailiang wrote:
> We need communications protocol of user-defined to control the checkpoint
> process.
> 
> The new checkpoint request is started by Primary VM, and the interactive 
> process
> like below:
> Checkpoint synchronizing points,
> 
>                        Primary                         Secondary
> 'checkpoint-request'   @ ----------------------------->
>                                                        Suspend (In hybrid 
> mode)
> 'checkpoint-reply'     <------------------------------ @
>                        Suspend&Save state
> 'vmstate-send'         @ ----------------------------->
>                        Send state                      Receive state
> 'vmstate-received'     <------------------------------ @
>                        Release packets                 Load state
> 'vmstate-load'         <------------------------------ @
>                        Resume                          Resume (In hybrid mode)
> 
>                        Start Comparing (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 <address@hidden>
> Signed-off-by: Yang Hongyang <address@hidden>
> Signed-off-by: Li Zhijian <address@hidden>
> Signed-off-by: Gonglei <address@hidden>
> ---
>  migration/colo.c | 192 
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  qapi-schema.json |  26 ++++++++
>  trace-events     |   3 +-
>  3 files changed, 218 insertions(+), 3 deletions(-)

Just a qapi review:


> +++ b/qapi-schema.json
> @@ -664,6 +664,32 @@
>              '*tls-port': 'int', '*cert-subject': 'str' } }
>  
>  ##
> +# @COLOCmd

Any reason this can't be COLOCommand?  We tend to avoid abbreviations in
the public interface, although arguably type names are not ABI.

> +#
> +# The colo command
> +#
> +# @invalid: unknown command
> +#
> +# @checkpoint-ready: SVM is ready for checkpointing
> +#
> +# @checkpoint-request: PVM tells SVM to prepare for new checkpointing
> +#
> +# @checkpoint-reply: SVM gets PVM's checkpoint request
> +#
> +# @vmstate-send: VM's state will be sent by PVM.
> +#
> +# @vmstate-received: VM's state has been received by SVM
> +#
> +# @vmstate-loaded: VM's state has been loaded by SVM

7 documentation strings...

> +#
> +# Since: 2.5
> +##
> +{ 'enum': 'COLOCmd',
> +  'data': [ 'invalid', 'checkpoint-ready', 'checkpoint-request',
> +            'checkpoint-reply', 'vmstate-send', 'vmstate-size',
> +            'vmstate-received', 'vmstate-loaded', 'guest-shutdown',
> +            'ram-steal'] }

...10 enum values.  Missing vmstate-size, guest-shutdown, ram-steal.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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