[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v9 8/8] tools/libxc: add DOMAIN_CONTEXT records to the migration stream...
On 24/09/2020 14:10, Paul Durrant wrote: > From: Paul Durrant <pdurrant@xxxxxxxxxx> > > ... and bump the version. > > This patch implements version 4 of the migration stream by adding the code > necessary to save and restore DOMAIN_CONTEXT records, and removing the code > to save the SHARED_INFO and TSC_INFO records (as these are deprecated in > version 4). > > Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx> This really needs to be at least 3 patches. First to adjust tools/python/scripts/verify-stream-v2 to understand the new changes in the stream. My testing tends to include running the script over the result of `xl save`, and using a script in place of libxl-save-helper which tee's the stream through the script, which lets you test in-line migrate. (I wonder if it would be better to add a pass-through mode to the script and give libxl a way of running it in the same way as it currently runs covert-legacy-stream.) Next, a patch updating the receive side only to understand the new changes in the stream. In particular, this makes it far easier to confirm that backwards compatibility is maintained. Finally, a patch updating the sending side, if applicable. (I've got an alternative suggestion to avoid burning a load of major version numbers, but will follow up on a different patch with that). > --- > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> > Cc: Wei Liu <wl@xxxxxxx> > > v7: > - New in v7 > --- > tools/libs/guest/xg_sr_common.h | 3 ++ > tools/libs/guest/xg_sr_common_x86.c | 20 ----------- > tools/libs/guest/xg_sr_common_x86.h | 6 ---- > tools/libs/guest/xg_sr_restore.c | 45 +++++++++++++++++++++-- > tools/libs/guest/xg_sr_save.c | 52 ++++++++++++++++++++++++++- > tools/libs/guest/xg_sr_save_x86_hvm.c | 5 --- > tools/libs/guest/xg_sr_save_x86_pv.c | 22 ------------ > 7 files changed, 97 insertions(+), 56 deletions(-) > > diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_common.h > index 13fcc47420..d440281cc1 100644 > --- a/tools/libs/guest/xg_sr_common.h > +++ b/tools/libs/guest/xg_sr_common.h > @@ -298,6 +298,9 @@ struct xc_sr_context > > /* Sender has invoked verify mode on the stream. */ > bool verify; > + > + /* Domain context blob. */ > + struct xc_sr_blob context; We already have ctx->x86.hvm.restore.context and are now gaining ctx->restore.context This is concerning close to being ambiguous. How about dom_context ? Also, you leak the memory allocation. Free it in xg_sr_restore.c:cleanup(). > diff --git a/tools/libs/guest/xg_sr_restore.c > b/tools/libs/guest/xg_sr_restore.c > index b57a787519..453a383ba4 100644 > --- a/tools/libs/guest/xg_sr_restore.c > +++ b/tools/libs/guest/xg_sr_restore.c > @@ -529,6 +529,20 @@ static int send_checkpoint_dirty_pfn_list(struct > xc_sr_context *ctx) > return rc; > } > > +static int stream_complete(struct xc_sr_context *ctx) > +{ > + xc_interface *xch = ctx->xch; > + int rc; > + > + rc = xc_domain_setcontext(xch, ctx->domid, > + ctx->restore.context.ptr, > + ctx->restore.context.size); > + if ( rc < 0 ) > + PERROR("Unable to restore domain context"); > + > + return rc; > +} Please put this in the PV and HVM stream_complete() hooks. This is somewhat of a layering violation and enforcing an order which might not be appropriate in all cases. ~Andrew
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |