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

Re: [Xen-devel] [PATCH v3 2/5] remus: resume immediately if libxl__xc_domain_save_done() completes



On Fri, 2016-01-08 at 14:38 +0800, Wen Congyang wrote:
> For example: if the secondary host is down, and we fail to send the data
> to
> the secondary host. xc_domain_save() returns 0.

Just to be check: On failure in this way xc_domain_save() returns 0 (i.e.
success)?

>  So in the function
> libxl__xc_domain_save_done(), rc is 0(the helper program exits normally),
> and retval is 0(it is xc_domain_save()'s return value). In such case, we
> just need to complete the stream.
> 
> Signed-off-by: Wen Congyang <wency@xxxxxxxxxxxxxx>
> ---
> Âtools/libxl/libxl_stream_write.c | 13 +++++++++++--
> Â1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/libxl/libxl_stream_write.c
> b/tools/libxl/libxl_stream_write.c
> index 80d9208..82e7719 100644
> --- a/tools/libxl/libxl_stream_write.c
> +++ b/tools/libxl/libxl_stream_write.c
> @@ -354,8 +354,17 @@ void libxl__xc_domain_save_done(libxl__egc *egc,
> void *dss_void,
> ÂÂÂÂÂÂ* alive, and check_all_finished() may have torn it down around us.
> ÂÂÂÂÂÂ* If the stream is not still alive, we must not continue any work.
> ÂÂÂÂÂÂ*/
> -ÂÂÂÂif (libxl__stream_write_inuse(stream))
> -ÂÂÂÂÂÂÂÂwrite_emulator_xenstore_record(egc, stream);
> +ÂÂÂÂif (libxl__stream_write_inuse(stream)) {
> +ÂÂÂÂÂÂÂÂif (dss->remus)
> +ÂÂÂÂÂÂÂÂÂÂÂÂ/*
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂ* For remus, if libxl__xc_domain_save_done() completes,
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂ* there was an error sending data to the secondary.
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂ* Resume the primary ASAP.
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂ*/
> +ÂÂÂÂÂÂÂÂÂÂÂÂstream_complete(egc, stream, 0);

Is there an indication to the caller that things have failed in this way?
Would that information be of use to the caller?

Or does the called infer this has happened because
otherwiseÂlibxl_domain_remus_start is not supposed to return?

> +ÂÂÂÂÂÂÂÂelse
> +ÂÂÂÂÂÂÂÂÂÂÂÂwrite_emulator_xenstore_record(egc, stream);
> +ÂÂÂÂ}
> Â}
> Â
> Âstatic void write_emulator_xenstore_record(libxl__egc *egc,

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

 


Rackspace

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