Message ID | 1490605592-12189-2-git-send-email-jtotto@uwaterloo.ca (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@uwaterloo.ca> > --- > 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 >
On 03/29/2017 12:34 AM, Wei Liu wrote: > 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@uwaterloo.ca> Acked-by: Zhang Chen <zhangchen.fnst@cn.fujitsu.com> >> --- >> 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 >> > > . >
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
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@uwaterloo.ca> --- 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(-)