|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v10 10/11] tools/libs/guest: add code to restore a v4 libxc stream
On 08/10/2020 19:57, Paul Durrant wrote:
> From: Paul Durrant <pdurrant@xxxxxxxxxx>
>
> This patch adds the necessary code to accept a v4 stream, and to recognise and
> restore a REC_TYPE_DOMAIN_CONTEXT record.
>
> Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx>
Somewhere within this needs to be logic to reject the forbidden records
in relevant stream versions.
> diff --git a/tools/libs/guest/xg_sr_restore_x86_hvm.c
> b/tools/libs/guest/xg_sr_restore_x86_hvm.c
> index d6ea6f3012..6bb164b9f0 100644
> --- a/tools/libs/guest/xg_sr_restore_x86_hvm.c
> +++ b/tools/libs/guest/xg_sr_restore_x86_hvm.c
> @@ -225,6 +225,15 @@ static int x86_hvm_stream_complete(struct xc_sr_context
> *ctx)
> return rc;
> }
>
> + rc = xc_domain_set_context(xch, ctx->domid,
> + ctx->restore.dom_ctx.ptr,
> + ctx->restore.dom_ctx.size);
> + if ( rc )
> + {
> + PERROR("Unable to restore Domain context");
> + return rc;
> + }
This doesn't match where you specified the record to live in the stream,
and in particular is reordered WRT HVMCONTEXT restoration.
Also, it appears to be in the middle of a block of code which needs to
become `if ( guest-aware )`.
> +
> rc = xc_dom_gnttab_seed(xch, ctx->domid, true,
> ctx->restore.console_gfn,
> ctx->restore.xenstore_gfn,
> diff --git a/tools/libs/guest/xg_sr_restore_x86_pv.c
> b/tools/libs/guest/xg_sr_restore_x86_pv.c
> index dc50b0f5a8..2dafad7b83 100644
> --- a/tools/libs/guest/xg_sr_restore_x86_pv.c
> +++ b/tools/libs/guest/xg_sr_restore_x86_pv.c
> @@ -1134,6 +1134,15 @@ static int x86_pv_stream_complete(struct xc_sr_context
> *ctx)
> if ( rc )
> return rc;
>
> + rc = xc_domain_set_context(xch, ctx->domid,
> + ctx->restore.dom_ctx.ptr,
> + ctx->restore.dom_ctx.size);
> + if ( rc )
> + {
> + PERROR("Unable to restore Domain context");
> + return rc;
> + }
Similar comment as HVM for the reordering. PV guests in particular tend
to be far more sensitive to the restoration order.
~Andrew
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |