From: Wen Congyang <wency@cn.fujitsu.com>
To: xen devel <xen-devel@lists.xen.org>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Ian Campbell <ian.campbell@citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
Wei Liu <wei.liu2@citrix.com>
Cc: Wen Congyang <wency@cn.fujitsu.com>,
Gui Jianfeng <guijianfeng@cn.fujitsu.com>,
Jiang Yunhong <yunhong.jiang@intel.com>,
Dong Eddie <eddie.dong@intel.com>,
Shriram Rajagopalan <rshriram@cs.ubc.ca>,
Yang Hongyang <hongyang.yang@easystack.cn>
Subject: [PATCH v5 COLOPre 06/18] tools/libxl: introduce enum type libxl_checkpointed_stream
Date: Thu, 17 Dec 2015 15:48:10 +0800 [thread overview]
Message-ID: <1450338502-27335-7-git-send-email-wency@cn.fujitsu.com> (raw)
In-Reply-To: <1450338502-27335-1-git-send-email-wency@cn.fujitsu.com>
From: Yang Hongyang <hongyang.yang@easystack.cn>
introduce enum type libxl_checkpointed_stream in IDL.
rename the last argument of migrate_receive from "remus" to
"checkpointed" since the semantics of this parameter has
changed.
NOTE:
libxl_domain_restore_params isn't changed here,
checkpointed_stream is still an int.
Signed-off-by: Yang Hongyang <hongyang.yang@easystack.cn>
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
---
tools/libxl/libxl.h | 7 +++++++
tools/libxl/libxl_types.idl | 5 +++++
tools/libxl/xl_cmdimpl.c | 18 ++++++++++++------
3 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
index 05606a7..a01e448 100644
--- a/tools/libxl/libxl.h
+++ b/tools/libxl/libxl.h
@@ -867,6 +867,13 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, libxl_mac *src);
*/
#define LIBXL_HAVE_DEVICE_MODEL_VERSION_NONE 1
+/*
+ * LIBXL_HAVE_CHECKPOINTED_STREAM
+ *
+ * If this is defined, then libxl_checkpointed_stream exists.
+ */
+#define LIBXL_HAVE_CHECKPOINTED_STREAM 1
+
typedef char **libxl_string_list;
void libxl_string_list_dispose(libxl_string_list *sl);
int libxl_string_list_length(const libxl_string_list *sl);
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index 9658356..3ef11aa 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -228,6 +228,11 @@ libxl_hdtype = Enumeration("hdtype", [
(2, "AHCI"),
], init_val = "LIBXL_HDTYPE_IDE")
+libxl_checkpointed_stream = Enumeration("checkpointed_stream", [
+ (0, "NONE"),
+ (1, "REMUS"),
+ ])
+
#
# Complex libxl types
#
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index f9933cb..c1cd696 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -4424,7 +4424,8 @@ static void migrate_domain(uint32_t domid, const char *rune, int debug,
}
static void migrate_receive(int debug, int daemonize, int monitor,
- int send_fd, int recv_fd, int remus)
+ int send_fd, int recv_fd,
+ libxl_checkpointed_stream checkpointed)
{
uint32_t domid;
int rc, rc2;
@@ -4449,7 +4450,7 @@ static void migrate_receive(int debug, int daemonize, int monitor,
dom_info.paused = 1;
dom_info.migrate_fd = recv_fd;
dom_info.migration_domname_r = &migration_domname;
- dom_info.checkpointed_stream = remus;
+ dom_info.checkpointed_stream = checkpointed;
rc = create_domain(&dom_info);
if (rc < 0) {
@@ -4460,7 +4461,8 @@ static void migrate_receive(int debug, int daemonize, int monitor,
domid = rc;
- if (remus) {
+ switch (checkpointed) {
+ case LIBXL_CHECKPOINTED_STREAM_REMUS:
/* If we are here, it means that the sender (primary) has crashed.
* TODO: Split-Brain Check.
*/
@@ -4493,6 +4495,9 @@ static void migrate_receive(int debug, int daemonize, int monitor,
common_domname, domid, rc);
exit(rc ? -ERROR_FAIL: 0);
+ default:
+ /* do nothing */
+ break;
}
fprintf(stderr, "migration target: Transfer complete,"
@@ -4630,7 +4635,8 @@ int main_restore(int argc, char **argv)
int main_migrate_receive(int argc, char **argv)
{
- int debug = 0, daemonize = 1, monitor = 1, remus = 0;
+ int debug = 0, daemonize = 1, monitor = 1;
+ libxl_checkpointed_stream checkpointed = LIBXL_CHECKPOINTED_STREAM_NONE;
int opt;
SWITCH_FOREACH_OPT(opt, "Fedr", NULL, "migrate-receive", 0) {
@@ -4645,7 +4651,7 @@ int main_migrate_receive(int argc, char **argv)
debug = 1;
break;
case 'r':
- remus = 1;
+ checkpointed = LIBXL_CHECKPOINTED_STREAM_REMUS;
break;
}
@@ -4655,7 +4661,7 @@ int main_migrate_receive(int argc, char **argv)
}
migrate_receive(debug, daemonize, monitor,
STDOUT_FILENO, STDIN_FILENO,
- remus);
+ checkpointed);
return 0;
}
--
2.5.0
next prev parent reply other threads:[~2015-12-17 7:48 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-17 7:48 [PATCH v5 COLOPre 00/18] Prerequisite patches for COLO Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 01/18] libxl/remus: init checkpoint_callback in Remus setup callback Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 02/18] tools/libxl: move remus code into libxl_remus.c Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 03/18] tools/libxl: move save/restore code into libxl_dom_save.c Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 04/18] libxl/save: Refactor libxl__domain_suspend_state Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 05/18] tools/libxc: support to resume uncooperative HVM guests Wen Congyang
2015-12-17 7:48 ` Wen Congyang [this message]
2015-12-17 7:48 ` [PATCH v5 COLOPre 07/18] migration/save: pass checkpointed_stream from libxl to libxc Wen Congyang
2016-01-25 18:38 ` Konrad Rzeszutek Wilk
2016-01-25 19:14 ` Konrad Rzeszutek Wilk
2016-01-26 5:42 ` Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 08/18] tools/libxl: introduce libxl__domain_restore_device_model to load qemu state Wen Congyang
2016-01-25 18:41 ` Konrad Rzeszutek Wilk
2016-01-26 6:17 ` Wen Congyang
2016-01-26 15:02 ` Konrad Rzeszutek Wilk
2015-12-17 7:48 ` [PATCH v5 COLOPre 09/18] tools/libxl: introduce libxl__domain_common_switch_qemu_logdirty() Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 10/18] tools/libxl: export logdirty_init Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 11/18] tools/libxl: Add back channel to allow migration target send data back Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 12/18] tools/libx{l, c}: add back channel to libxc Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 13/18] tools/libxl: rename remus device to checkpoint device Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 14/18] tools/libxl: fix backword compatibility after the automatic renaming Wen Congyang
2016-01-25 19:43 ` Konrad Rzeszutek Wilk
2016-01-26 8:06 ` Wen Congyang
2016-01-26 15:02 ` Konrad Rzeszutek Wilk
2015-12-17 7:48 ` [PATCH v5 COLOPre 15/18] tools/libxl: adjust the indentation Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 16/18] tools/libxl: store remus_ops in checkpoint device state Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 17/18] tools/libxl: move remus state into a seperate structure Wen Congyang
2015-12-17 7:48 ` [PATCH v5 COLOPre 18/18] tools/libxl: seperate device init/cleanup from checkpoint device layer Wen Congyang
2016-01-04 17:02 ` [PATCH v5 COLOPre 00/18] Prerequisite patches for COLO Ian Jackson
2016-01-18 1:51 ` Wen Congyang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1450338502-27335-7-git-send-email-wency@cn.fujitsu.com \
--to=wency@cn.fujitsu.com \
--cc=andrew.cooper3@citrix.com \
--cc=eddie.dong@intel.com \
--cc=guijianfeng@cn.fujitsu.com \
--cc=hongyang.yang@easystack.cn \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=rshriram@cs.ubc.ca \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
--cc=yunhong.jiang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).