* [PATCH v2 0/5] migration/remus: bug fix and cleanup
@ 2016-01-05 2:06 Wen Congyang
2016-01-05 2:06 ` [PATCH v2 1/5] remus: don't call stream_continue() when doing failover Wen Congyang
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Wen Congyang @ 2016-01-05 2:06 UTC (permalink / raw)
To: xen devel, Andrew Cooper
Cc: Changlong Xie, Wei Liu, Ian Campbell, Wen Congyang, Ian Jackson,
Shriram Rajagopalan, Yang Hongyang
Wen Congyang (5):
remus: don't call stream_continue() when doing failover
remus: don't write xenstore data if it fails
tools/libxc: don't send end record if remus fails
tools/libxc: error handling for the postcopy() callback
tools/libxl: remove unused function libxl__domain_save_device_model()
tools/libxc/xc_sr_save.c | 6 ++-
tools/libxl/libxl_dom.c | 91 ----------------------------------------
tools/libxl/libxl_internal.h | 3 --
tools/libxl/libxl_stream_read.c | 21 +++++++---
tools/libxl/libxl_stream_write.c | 8 +++-
5 files changed, 26 insertions(+), 103 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/5] remus: don't call stream_continue() when doing failover
2016-01-05 2:06 [PATCH v2 0/5] migration/remus: bug fix and cleanup Wen Congyang
@ 2016-01-05 2:06 ` Wen Congyang
2016-01-05 2:06 ` [PATCH v2 2/5] remus: don't write xenstore data if it fails Wen Congyang
` (3 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: Wen Congyang @ 2016-01-05 2:06 UTC (permalink / raw)
To: xen devel, Andrew Cooper
Cc: Changlong Xie, Wei Liu, Ian Campbell, Wen Congyang, Ian Jackson,
Shriram Rajagopalan, Yang Hongyang
stream_continue() is used for migration to read emulator
xenstore data and emulator context. For remus, if we do
failover, we have read it in the checkpoint cycle, and
we only need to complete the stream.
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
tools/libxl/libxl_stream_read.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/tools/libxl/libxl_stream_read.c b/tools/libxl/libxl_stream_read.c
index 258dec4..65219d5 100644
--- a/tools/libxl/libxl_stream_read.c
+++ b/tools/libxl/libxl_stream_read.c
@@ -758,6 +758,9 @@ void libxl__xc_domain_restore_done(libxl__egc *egc, void *dcs_void,
libxl__stream_read_state *stream = &dcs->srs;
STATE_AO_GC(dcs->ao);
+ /* convenience aliases */
+ const int checkpointed_stream = dcs->restore_params.checkpointed_stream;
+
if (rc)
goto err;
@@ -777,11 +780,19 @@ void libxl__xc_domain_restore_done(libxl__egc *egc, void *dcs_void,
* If the stream is not still alive, we must not continue any work.
*/
if (libxl__stream_read_inuse(stream)) {
- /*
- * Libxc has indicated that it is done with the stream. Resume reading
- * libxl records from it.
- */
- stream_continue(egc, stream);
+ if (checkpointed_stream) {
+ /*
+ * Failover from primary. Domain state is currently at a
+ * consistent checkpoint, ready to go.
+ */
+ stream_complete(egc, stream, 0);
+ } else {
+ /*
+ * Libxc has indicated that it is done with the stream.
+ * Resume reading libxl records from it.
+ */
+ stream_continue(egc, stream);
+ }
}
}
--
2.5.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 2/5] remus: don't write xenstore data if it fails
2016-01-05 2:06 [PATCH v2 0/5] migration/remus: bug fix and cleanup Wen Congyang
2016-01-05 2:06 ` [PATCH v2 1/5] remus: don't call stream_continue() when doing failover Wen Congyang
@ 2016-01-05 2:06 ` Wen Congyang
2016-01-05 9:27 ` Andrew Cooper
2016-01-05 2:06 ` [PATCH v2 3/5] tools/libxc: don't send end record if remus fails Wen Congyang
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Wen Congyang @ 2016-01-05 2:06 UTC (permalink / raw)
To: xen devel, Andrew Cooper
Cc: Changlong Xie, Wei Liu, Ian Campbell, Wen Congyang, Ian Jackson,
Shriram Rajagopalan, Yang Hongyang
For example: if the secondary host is down, and we fail to send the data to
the secondary host. xc_domain_save() returns 0. 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@cn.fujitsu.com>
---
tools/libxl/libxl_stream_write.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tools/libxl/libxl_stream_write.c b/tools/libxl/libxl_stream_write.c
index 80d9208..ee9c53a 100644
--- a/tools/libxl/libxl_stream_write.c
+++ b/tools/libxl/libxl_stream_write.c
@@ -354,8 +354,12 @@ 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)
+ stream_complete(egc, stream, 0);
+ else
+ write_emulator_xenstore_record(egc, stream);
+ }
}
static void write_emulator_xenstore_record(libxl__egc *egc,
--
2.5.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 3/5] tools/libxc: don't send end record if remus fails
2016-01-05 2:06 [PATCH v2 0/5] migration/remus: bug fix and cleanup Wen Congyang
2016-01-05 2:06 ` [PATCH v2 1/5] remus: don't call stream_continue() when doing failover Wen Congyang
2016-01-05 2:06 ` [PATCH v2 2/5] remus: don't write xenstore data if it fails Wen Congyang
@ 2016-01-05 2:06 ` Wen Congyang
2016-01-05 2:06 ` [PATCH v2 4/5] tools/libxc: error handling for the postcopy() callback Wen Congyang
2016-01-05 2:06 ` [PATCH v2 5/5] tools/libxl: remove unused function libxl__domain_save_device_model() Wen Congyang
4 siblings, 0 replies; 11+ messages in thread
From: Wen Congyang @ 2016-01-05 2:06 UTC (permalink / raw)
To: xen devel, Andrew Cooper
Cc: Changlong Xie, Wei Liu, Ian Campbell, Wen Congyang, Ian Jackson,
Shriram Rajagopalan, Yang Hongyang
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
tools/libxc/xc_sr_save.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/libxc/xc_sr_save.c b/tools/libxc/xc_sr_save.c
index cefcef5..76ebb34 100644
--- a/tools/libxc/xc_sr_save.c
+++ b/tools/libxc/xc_sr_save.c
@@ -790,7 +790,7 @@ static int save(struct xc_sr_context *ctx, uint16_t guest_type)
rc = ctx->save.callbacks->checkpoint(ctx->save.callbacks->data);
if ( rc <= 0 )
- ctx->save.checkpointed = false;
+ goto err;
}
} while ( ctx->save.checkpointed );
--
2.5.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/5] tools/libxc: error handling for the postcopy() callback
2016-01-05 2:06 [PATCH v2 0/5] migration/remus: bug fix and cleanup Wen Congyang
` (2 preceding siblings ...)
2016-01-05 2:06 ` [PATCH v2 3/5] tools/libxc: don't send end record if remus fails Wen Congyang
@ 2016-01-05 2:06 ` Wen Congyang
2016-01-05 9:18 ` Andrew Cooper
2016-01-05 2:06 ` [PATCH v2 5/5] tools/libxl: remove unused function libxl__domain_save_device_model() Wen Congyang
4 siblings, 1 reply; 11+ messages in thread
From: Wen Congyang @ 2016-01-05 2:06 UTC (permalink / raw)
To: xen devel, Andrew Cooper
Cc: Changlong Xie, Wei Liu, Ian Campbell, Wen Congyang, Ian Jackson,
Shriram Rajagopalan, Yang Hongyang
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
---
tools/libxc/xc_sr_save.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/libxc/xc_sr_save.c b/tools/libxc/xc_sr_save.c
index 76ebb34..8090fcf 100644
--- a/tools/libxc/xc_sr_save.c
+++ b/tools/libxc/xc_sr_save.c
@@ -786,7 +786,9 @@ static int save(struct xc_sr_context *ctx, uint16_t guest_type)
if ( rc )
goto err;
- ctx->save.callbacks->postcopy(ctx->save.callbacks->data);
+ rc = ctx->save.callbacks->postcopy(ctx->save.callbacks->data);
+ if ( rc <= 0 )
+ goto err;
rc = ctx->save.callbacks->checkpoint(ctx->save.callbacks->data);
if ( rc <= 0 )
--
2.5.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 5/5] tools/libxl: remove unused function libxl__domain_save_device_model()
2016-01-05 2:06 [PATCH v2 0/5] migration/remus: bug fix and cleanup Wen Congyang
` (3 preceding siblings ...)
2016-01-05 2:06 ` [PATCH v2 4/5] tools/libxc: error handling for the postcopy() callback Wen Congyang
@ 2016-01-05 2:06 ` Wen Congyang
2016-01-06 14:10 ` Wei Liu
4 siblings, 1 reply; 11+ messages in thread
From: Wen Congyang @ 2016-01-05 2:06 UTC (permalink / raw)
To: xen devel, Andrew Cooper
Cc: Changlong Xie, Wei Liu, Ian Campbell, Wen Congyang, Ian Jackson,
Shriram Rajagopalan, Yang Hongyang
After the commit d77570e7, libxl__domain_save_device_model() can
be dropped.
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
---
tools/libxl/libxl_dom.c | 91 --------------------------------------------
tools/libxl/libxl_internal.h | 3 --
2 files changed, 94 deletions(-)
diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
index 47971a9..2269998 100644
--- a/tools/libxl/libxl_dom.c
+++ b/tools/libxl/libxl_dom.c
@@ -1785,97 +1785,6 @@ static void stream_done(libxl__egc *egc,
domain_save_done(egc, sws->dss, rc);
}
-static void save_device_model_datacopier_done(libxl__egc *egc,
- libxl__datacopier_state *dc, int rc, int onwrite, int errnoval);
-
-void libxl__domain_save_device_model(libxl__egc *egc,
- libxl__domain_suspend_state *dss,
- libxl__save_device_model_cb *callback)
-{
- STATE_AO_GC(dss->ao);
- struct stat st;
- uint32_t qemu_state_len;
- int rc;
-
- dss->save_dm_callback = callback;
-
- /* Convenience aliases */
- const char *const filename = dss->dm_savefile;
- const int fd = dss->fd;
-
- libxl__datacopier_state *dc = &dss->save_dm_datacopier;
- memset(dc, 0, sizeof(*dc));
- dc->readwhat = GCSPRINTF("qemu save file %s", filename);
- dc->ao = ao;
- dc->readfd = -1;
- dc->writefd = fd;
- dc->maxsz = INT_MAX;
- dc->bytes_to_read = -1;
- dc->copywhat = GCSPRINTF("qemu save file for domain %"PRIu32, dss->domid);
- dc->writewhat = "save/migration stream";
- dc->callback = save_device_model_datacopier_done;
-
- dc->readfd = open(filename, O_RDONLY);
- if (dc->readfd < 0) {
- LOGE(ERROR, "unable to open %s", dc->readwhat);
- rc = ERROR_FAIL;
- goto out;
- }
-
- if (fstat(dc->readfd, &st))
- {
- LOGE(ERROR, "unable to fstat %s", dc->readwhat);
- rc = ERROR_FAIL;
- goto out;
- }
-
- if (!S_ISREG(st.st_mode)) {
- LOG(ERROR, "%s is not a plain file!", dc->readwhat);
- rc = ERROR_FAIL;
- goto out;
- }
-
- qemu_state_len = st.st_size;
- LOG(DEBUG, "%s is %d bytes", dc->readwhat, qemu_state_len);
-
- rc = libxl__datacopier_start(dc);
- if (rc) goto out;
-
- libxl__datacopier_prefixdata(egc, dc,
- QEMU_SIGNATURE, strlen(QEMU_SIGNATURE));
-
- libxl__datacopier_prefixdata(egc, dc,
- &qemu_state_len, sizeof(qemu_state_len));
- return;
-
- out:
- save_device_model_datacopier_done(egc, dc, rc, -1, EIO);
-}
-
-static void save_device_model_datacopier_done(libxl__egc *egc,
- libxl__datacopier_state *dc, int our_rc, int onwrite, int errnoval)
-{
- libxl__domain_suspend_state *dss =
- CONTAINER_OF(dc, *dss, save_dm_datacopier);
- STATE_AO_GC(dss->ao);
-
- /* Convenience aliases */
- const char *const filename = dss->dm_savefile;
- int rc;
-
- libxl__datacopier_kill(dc);
-
- if (dc->readfd >= 0) {
- close(dc->readfd);
- dc->readfd = -1;
- }
-
- rc = libxl__remove_file(gc, filename);
- if (!our_rc) our_rc = rc;
-
- dss->save_dm_callback(egc, dss, our_rc);
-}
-
static void libxl__remus_teardown(libxl__egc *egc,
libxl__domain_suspend_state *dss,
int rc);
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index a556a38..630172b 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -3498,9 +3498,6 @@ static inline bool libxl__save_helper_inuse(const libxl__save_helper_state *shs)
/* Each time the dm needs to be saved, we must call suspend and then save */
_hidden int libxl__domain_suspend_device_model(libxl__gc *gc,
libxl__domain_suspend_state *dss);
-_hidden void libxl__domain_save_device_model(libxl__egc *egc,
- libxl__domain_suspend_state *dss,
- libxl__save_device_model_cb *callback);
_hidden const char *libxl__device_model_savefile(libxl__gc *gc, uint32_t domid);
--
2.5.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 4/5] tools/libxc: error handling for the postcopy() callback
2016-01-05 2:06 ` [PATCH v2 4/5] tools/libxc: error handling for the postcopy() callback Wen Congyang
@ 2016-01-05 9:18 ` Andrew Cooper
0 siblings, 0 replies; 11+ messages in thread
From: Andrew Cooper @ 2016-01-05 9:18 UTC (permalink / raw)
To: Wen Congyang, xen devel
Cc: Changlong Xie, Wei Liu, Ian Campbell, Ian Jackson,
Shriram Rajagopalan, Yang Hongyang
On 05/01/2016 02:06, Wen Congyang wrote:
> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/5] remus: don't write xenstore data if it fails
2016-01-05 2:06 ` [PATCH v2 2/5] remus: don't write xenstore data if it fails Wen Congyang
@ 2016-01-05 9:27 ` Andrew Cooper
2016-01-05 9:35 ` Wen Congyang
0 siblings, 1 reply; 11+ messages in thread
From: Andrew Cooper @ 2016-01-05 9:27 UTC (permalink / raw)
To: Wen Congyang, xen devel
Cc: Changlong Xie, Wei Liu, Ian Campbell, Ian Jackson,
Shriram Rajagopalan, Yang Hongyang
On 05/01/2016 02:06, Wen Congyang wrote:
"if it fails" is ambiguous. What I think you mean is "remus: resume
immediately if libxl__xc_domain_save_done() completes"
> For example: if the secondary host is down, and we fail to send the data to
> the secondary host. xc_domain_save() returns 0. 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@cn.fujitsu.com>
> ---
> tools/libxl/libxl_stream_write.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/libxl/libxl_stream_write.c b/tools/libxl/libxl_stream_write.c
> index 80d9208..ee9c53a 100644
> --- a/tools/libxl/libxl_stream_write.c
> +++ b/tools/libxl/libxl_stream_write.c
> @@ -354,8 +354,12 @@ 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)
Please put a small comment here as well. Perhaps
"For remus, if libxl__xc_domain_save_done() completes, there was an
error sending data to the secondary. Resume the primary ASAP."
~Andrew
> + stream_complete(egc, stream, 0);
> + else
> + write_emulator_xenstore_record(egc, stream);
> + }
> }
>
> static void write_emulator_xenstore_record(libxl__egc *egc,
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/5] remus: don't write xenstore data if it fails
2016-01-05 9:27 ` Andrew Cooper
@ 2016-01-05 9:35 ` Wen Congyang
0 siblings, 0 replies; 11+ messages in thread
From: Wen Congyang @ 2016-01-05 9:35 UTC (permalink / raw)
To: Andrew Cooper, xen devel
Cc: Changlong Xie, Wei Liu, Ian Campbell, Ian Jackson,
Shriram Rajagopalan, Yang Hongyang
On 01/05/2016 05:27 PM, Andrew Cooper wrote:
> On 05/01/2016 02:06, Wen Congyang wrote:
>
> "if it fails" is ambiguous. What I think you mean is "remus: resume
> immediately if libxl__xc_domain_save_done() completes"
>
>> For example: if the secondary host is down, and we fail to send the data to
>> the secondary host. xc_domain_save() returns 0. 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@cn.fujitsu.com>
>> ---
>> tools/libxl/libxl_stream_write.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/libxl/libxl_stream_write.c b/tools/libxl/libxl_stream_write.c
>> index 80d9208..ee9c53a 100644
>> --- a/tools/libxl/libxl_stream_write.c
>> +++ b/tools/libxl/libxl_stream_write.c
>> @@ -354,8 +354,12 @@ 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)
>
> Please put a small comment here as well. Perhaps
>
> "For remus, if libxl__xc_domain_save_done() completes, there was an
> error sending data to the secondary. Resume the primary ASAP."
OK, I will update it in the next version.
Thanks
Wen Congyang
>
> ~Andrew
>
>> + stream_complete(egc, stream, 0);
>> + else
>> + write_emulator_xenstore_record(egc, stream);
>> + }
>> }
>>
>> static void write_emulator_xenstore_record(libxl__egc *egc,
>
>
>
> .
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 5/5] tools/libxl: remove unused function libxl__domain_save_device_model()
2016-01-05 2:06 ` [PATCH v2 5/5] tools/libxl: remove unused function libxl__domain_save_device_model() Wen Congyang
@ 2016-01-06 14:10 ` Wei Liu
2016-01-06 15:12 ` Wen Congyang
0 siblings, 1 reply; 11+ messages in thread
From: Wei Liu @ 2016-01-06 14:10 UTC (permalink / raw)
To: Wen Congyang
Cc: Changlong Xie, Wei Liu, Ian Campbell, Andrew Cooper, Ian Jackson,
xen devel, Shriram Rajagopalan, Yang Hongyang
On Tue, Jan 05, 2016 at 10:06:21AM +0800, Wen Congyang wrote:
> After the commit d77570e7, libxl__domain_save_device_model() can
> be dropped.
>
> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
This is incomplete as far as I can tell.
There are several references to the said function:
$ git grep libxl__domain_save_device_model
libxl.c: * On suspend libxl__domain_save_device_model will have already
libxl_dom.c:void libxl__domain_save_device_model(libxl__egc *egc,
libxl_internal.h: /* private for libxl__domain_save_device_model */
libxl_internal.h:_hidden void libxl__domain_save_device_model(libxl__egc *egc,
I think you haven't handled the instances showed up in line 1 and line
3.
Wei.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 5/5] tools/libxl: remove unused function libxl__domain_save_device_model()
2016-01-06 14:10 ` Wei Liu
@ 2016-01-06 15:12 ` Wen Congyang
0 siblings, 0 replies; 11+ messages in thread
From: Wen Congyang @ 2016-01-06 15:12 UTC (permalink / raw)
To: Wei Liu, Wen Congyang
Cc: Changlong Xie, Ian Campbell, Andrew Cooper, Ian Jackson,
xen devel, Shriram Rajagopalan, Yang Hongyang
在 2016/1/6 22:10, Wei Liu 写道:
> On Tue, Jan 05, 2016 at 10:06:21AM +0800, Wen Congyang wrote:
>> After the commit d77570e7, libxl__domain_save_device_model() can
>> be dropped.
>>
>> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
>
> This is incomplete as far as I can tell.
>
> There are several references to the said function:
>
> $ git grep libxl__domain_save_device_model
>
> libxl.c: * On suspend libxl__domain_save_device_model will have already
libxl__domain_save_device_model() will remove the dm_savefile. But we
don't remove
it when using migration v2.
> libxl_dom.c:void libxl__domain_save_device_model(libxl__egc *egc,
> libxl_internal.h: /* private for libxl__domain_save_device_model */
> libxl_internal.h:_hidden void libxl__domain_save_device_model(libxl__egc *egc,
>
> I think you haven't handled the instances showed up in line 1 and line
> 3.
Yes, I will fix it in the next version.
Thanks
Wen Congyang
>
> Wei.
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-01-06 15:12 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-05 2:06 [PATCH v2 0/5] migration/remus: bug fix and cleanup Wen Congyang
2016-01-05 2:06 ` [PATCH v2 1/5] remus: don't call stream_continue() when doing failover Wen Congyang
2016-01-05 2:06 ` [PATCH v2 2/5] remus: don't write xenstore data if it fails Wen Congyang
2016-01-05 9:27 ` Andrew Cooper
2016-01-05 9:35 ` Wen Congyang
2016-01-05 2:06 ` [PATCH v2 3/5] tools/libxc: don't send end record if remus fails Wen Congyang
2016-01-05 2:06 ` [PATCH v2 4/5] tools/libxc: error handling for the postcopy() callback Wen Congyang
2016-01-05 9:18 ` Andrew Cooper
2016-01-05 2:06 ` [PATCH v2 5/5] tools/libxl: remove unused function libxl__domain_save_device_model() Wen Congyang
2016-01-06 14:10 ` Wei Liu
2016-01-06 15:12 ` Wen Congyang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.