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

Re: [Xen-devel] [PATCH RFC 01/20] tools: rename COLO 'postcopy' to 'aftercopy'



Cc Chen

On Mon, Mar 27, 2017 at 05:06:13AM -0400, Joshua Otto wrote:
> The COLO xc domain save and restore procedures both make use of a 'postcopy'
> callback to defer part of each checkpoint operation to xl.  In this context, 
> the
> name 'postcopy' is meant as "the callback invoked immediately after this
> checkpoint's memory callback."  This is an unfortunate name collision with the
> other common use of 'postcopy' in the context of live migration, where it is
> used to mean "a memory migration that permits the guest to execute at the
> destination before all of its memory is migrated by servicing accesses to
> unmigrated memory via a network page-fault."
> 
> Mechanically rename 'postcopy' -> 'aftercopy' to free up the postcopy 
> namespace
> while preserving the original intent of the name in the COLO context.
> 
> No functional change.
> 
> Signed-off-by: Joshua Otto <jtotto@xxxxxxxxxxxx>
> ---
>  tools/libxc/include/xenguest.h     | 4 ++--
>  tools/libxc/xc_sr_restore.c        | 4 ++--
>  tools/libxc/xc_sr_save.c           | 4 ++--
>  tools/libxl/libxl_colo_restore.c   | 2 +-
>  tools/libxl/libxl_colo_save.c      | 2 +-
>  tools/libxl/libxl_remus.c          | 2 +-
>  tools/libxl/libxl_save_msgs_gen.pl | 2 +-
>  7 files changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git a/tools/libxc/include/xenguest.h b/tools/libxc/include/xenguest.h
> index 40902ee..aa8cc8b 100644
> --- a/tools/libxc/include/xenguest.h
> +++ b/tools/libxc/include/xenguest.h
> @@ -53,7 +53,7 @@ struct save_callbacks {
>       * xc_domain_save then flushes the output buffer, while the
>       *  guest continues to run.
>       */
> -    int (*postcopy)(void* data);
> +    int (*aftercopy)(void* data);
>  
>      /* Called after the memory checkpoint has been flushed
>       * out into the network. Typical actions performed in this
> @@ -115,7 +115,7 @@ struct restore_callbacks {
>       * Callback function resumes the guest & the device model,
>       * returns to xc_domain_restore.
>       */
> -    int (*postcopy)(void* data);
> +    int (*aftercopy)(void* data);
>  
>      /* A checkpoint record has been found in the stream.
>       * returns: */
> diff --git a/tools/libxc/xc_sr_restore.c b/tools/libxc/xc_sr_restore.c
> index 3549f0a..ee06b3d 100644
> --- a/tools/libxc/xc_sr_restore.c
> +++ b/tools/libxc/xc_sr_restore.c
> @@ -576,7 +576,7 @@ static int handle_checkpoint(struct xc_sr_context *ctx)
>                                                  
> ctx->restore.callbacks->data);
>  
>          /* Resume secondary vm */
> -        ret = ctx->restore.callbacks->postcopy(ctx->restore.callbacks->data);
> +        ret = 
> ctx->restore.callbacks->aftercopy(ctx->restore.callbacks->data);
>          HANDLE_CALLBACK_RETURN_VALUE(ret);
>  
>          /* Wait for a new checkpoint */
> @@ -855,7 +855,7 @@ int xc_domain_restore(xc_interface *xch, int io_fd, 
> uint32_t dom,
>      {
>          /* this is COLO restore */
>          assert(callbacks->suspend &&
> -               callbacks->postcopy &&
> +               callbacks->aftercopy &&
>                 callbacks->wait_checkpoint &&
>                 callbacks->restore_results);
>      }
> diff --git a/tools/libxc/xc_sr_save.c b/tools/libxc/xc_sr_save.c
> index f98c827..fc63a55 100644
> --- a/tools/libxc/xc_sr_save.c
> +++ b/tools/libxc/xc_sr_save.c
> @@ -863,7 +863,7 @@ static int save(struct xc_sr_context *ctx, uint16_t 
> guest_type)
>                  }
>              }
>  
> -            rc = ctx->save.callbacks->postcopy(ctx->save.callbacks->data);
> +            rc = ctx->save.callbacks->aftercopy(ctx->save.callbacks->data);
>              if ( rc <= 0 )
>                  goto err;
>  
> @@ -951,7 +951,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t 
> dom,
>      if ( hvm )
>          assert(callbacks->switch_qemu_logdirty);
>      if ( ctx.save.checkpointed )
> -        assert(callbacks->checkpoint && callbacks->postcopy);
> +        assert(callbacks->checkpoint && callbacks->aftercopy);
>      if ( ctx.save.checkpointed == XC_MIG_STREAM_COLO )
>          assert(callbacks->wait_checkpoint);
>  
> diff --git a/tools/libxl/libxl_colo_restore.c 
> b/tools/libxl/libxl_colo_restore.c
> index 0c535bd..7d8f9ff 100644
> --- a/tools/libxl/libxl_colo_restore.c
> +++ b/tools/libxl/libxl_colo_restore.c
> @@ -246,7 +246,7 @@ void libxl__colo_restore_setup(libxl__egc *egc,
>      if (init_dsps(&crcs->dsps))
>          goto out;
>  
> -    callbacks->postcopy = libxl__colo_restore_domain_resume_callback;
> +    callbacks->aftercopy = libxl__colo_restore_domain_resume_callback;
>      callbacks->wait_checkpoint = 
> libxl__colo_restore_domain_wait_checkpoint_callback;
>      callbacks->suspend = libxl__colo_restore_domain_suspend_callback;
>      callbacks->checkpoint = libxl__colo_restore_domain_checkpoint_callback;
> diff --git a/tools/libxl/libxl_colo_save.c b/tools/libxl/libxl_colo_save.c
> index f687d5a..5921196 100644
> --- a/tools/libxl/libxl_colo_save.c
> +++ b/tools/libxl/libxl_colo_save.c
> @@ -145,7 +145,7 @@ void libxl__colo_save_setup(libxl__egc *egc, 
> libxl__colo_save_state *css)
>  
>      callbacks->suspend = libxl__colo_save_domain_suspend_callback;
>      callbacks->checkpoint = libxl__colo_save_domain_checkpoint_callback;
> -    callbacks->postcopy = libxl__colo_save_domain_resume_callback;
> +    callbacks->aftercopy = libxl__colo_save_domain_resume_callback;
>      callbacks->wait_checkpoint = 
> libxl__colo_save_domain_wait_checkpoint_callback;
>  
>      libxl__checkpoint_devices_setup(egc, &dss->cds);
> diff --git a/tools/libxl/libxl_remus.c b/tools/libxl/libxl_remus.c
> index 29a4783..1453365 100644
> --- a/tools/libxl/libxl_remus.c
> +++ b/tools/libxl/libxl_remus.c
> @@ -110,7 +110,7 @@ void libxl__remus_setup(libxl__egc *egc, 
> libxl__remus_state *rs)
>      dss->sws.checkpoint_callback = remus_checkpoint_stream_written;
>  
>      callbacks->suspend = libxl__remus_domain_suspend_callback;
> -    callbacks->postcopy = libxl__remus_domain_resume_callback;
> +    callbacks->aftercopy = libxl__remus_domain_resume_callback;
>      callbacks->checkpoint = libxl__remus_domain_save_checkpoint_callback;
>  
>      libxl__checkpoint_devices_setup(egc, cds);
> diff --git a/tools/libxl/libxl_save_msgs_gen.pl 
> b/tools/libxl/libxl_save_msgs_gen.pl
> index 3ae7373..27845bb 100755
> --- a/tools/libxl/libxl_save_msgs_gen.pl
> +++ b/tools/libxl/libxl_save_msgs_gen.pl
> @@ -24,7 +24,7 @@ our @msgs = (
>                                                  'unsigned long', 'done',
>                                                  'unsigned long', 'total'] ],
>      [  3, 'srcxA',  "suspend", [] ],
> -    [  4, 'srcxA',  "postcopy", [] ],
> +    [  4, 'srcxA',  "aftercopy", [] ],
>      [  5, 'srcxA',  "checkpoint", [] ],
>      [  6, 'srcxA',  "wait_checkpoint", [] ],
>      [  7, 'scxA',   "switch_qemu_logdirty",  [qw(int domid
> -- 
> 2.7.4
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.