xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 1/3] libxc: move migration_stream's definition to xenguest.h
@ 2016-03-15  1:58 Wen Congyang
  2016-03-15  1:58 ` [PATCH v4 2/3] tools: change checkpointed_stream's type from int to xc_migration_stream_t Wen Congyang
  2016-03-15  1:58 ` [PATCH v4 3/3] libxl: rename checkpointed_stream to stream_type Wen Congyang
  0 siblings, 2 replies; 6+ messages in thread
From: Wen Congyang @ 2016-03-15  1:58 UTC (permalink / raw)
  To: xen devel, Andrew Cooper, Wei Liu; +Cc: Ian Jackson, Ian Campbell, Wen Congyang

xc_domain_save() and xc_domain_restore's parameter will use this type,
so it should be public.

Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
---
v2->v3: Rename MIG_STREAM_* to XC_MIG_STREAM_*
 tools/libxc/include/xenguest.h |  7 ++++++-
 tools/libxc/xc_sr_common.h     | 10 ----------
 tools/libxc/xc_sr_save.c       | 12 ++++++------
 3 files changed, 12 insertions(+), 17 deletions(-)

diff --git a/tools/libxc/include/xenguest.h b/tools/libxc/include/xenguest.h
index affc42b..cf521c3 100644
--- a/tools/libxc/include/xenguest.h
+++ b/tools/libxc/include/xenguest.h
@@ -75,13 +75,18 @@ struct save_callbacks {
     void* data;
 };
 
+typedef enum {
+    XC_MIG_STREAM_NONE, /* plain stream */
+    XC_MIG_STREAM_REMUS,
+} xc_migration_stream_t;
+
 /**
  * This function will save a running domain.
  *
  * @parm xch a handle to an open hypervisor interface
  * @parm fd the file descriptor to save a domain to
  * @parm dom the id of the domain
- * @param checkpointed_stream MIG_STREAM_NONE if the far end of the stream
+ * @param checkpointed_stream XC_MIG_STREAM_NONE if the far end of the stream
  *        doesn't use checkpointing
  * @return 0 on success, -1 on failure
  */
diff --git a/tools/libxc/xc_sr_common.h b/tools/libxc/xc_sr_common.h
index 66f595f..e7568b5 100644
--- a/tools/libxc/xc_sr_common.h
+++ b/tools/libxc/xc_sr_common.h
@@ -180,16 +180,6 @@ struct xc_sr_context
 
     xc_dominfo_t dominfo;
 
-    /*
-     * migration stream
-     * 0: Plain VM
-     * 1: Remus
-     */
-    enum {
-        MIG_STREAM_NONE, /* plain stream */
-        MIG_STREAM_REMUS,
-    } migration_stream;
-
     union /* Common save or restore data. */
     {
         struct /* Save data. */
diff --git a/tools/libxc/xc_sr_save.c b/tools/libxc/xc_sr_save.c
index e258b7c..ab59673 100644
--- a/tools/libxc/xc_sr_save.c
+++ b/tools/libxc/xc_sr_save.c
@@ -629,7 +629,7 @@ static int send_domain_memory_live(struct xc_sr_context *ctx)
     if ( rc )
         goto out;
 
-    if ( ctx->save.debug && ctx->save.checkpointed != MIG_STREAM_NONE )
+    if ( ctx->save.debug && ctx->save.checkpointed != XC_MIG_STREAM_NONE )
     {
         rc = verify_frames(ctx);
         if ( rc )
@@ -758,7 +758,7 @@ static int save(struct xc_sr_context *ctx, uint16_t guest_type)
 
         if ( ctx->save.live )
             rc = send_domain_memory_live(ctx);
-        else if ( ctx->save.checkpointed != MIG_STREAM_NONE )
+        else if ( ctx->save.checkpointed != XC_MIG_STREAM_NONE )
             rc = send_domain_memory_checkpointed(ctx);
         else
             rc = send_domain_memory_nonlive(ctx);
@@ -778,7 +778,7 @@ static int save(struct xc_sr_context *ctx, uint16_t guest_type)
         if ( rc )
             goto err;
 
-        if ( ctx->save.checkpointed != MIG_STREAM_NONE )
+        if ( ctx->save.checkpointed != XC_MIG_STREAM_NONE )
         {
             /*
              * We have now completed the initial live portion of the checkpoint
@@ -799,7 +799,7 @@ static int save(struct xc_sr_context *ctx, uint16_t guest_type)
             if ( rc <= 0 )
                 goto err;
         }
-    } while ( ctx->save.checkpointed != MIG_STREAM_NONE );
+    } while ( ctx->save.checkpointed != XC_MIG_STREAM_NONE );
 
     xc_report_progress_single(xch, "End of stream");
 
@@ -845,8 +845,8 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom,
     ctx.save.checkpointed = checkpointed_stream;
 
     /* If altering migration_stream update this assert too. */
-    assert(checkpointed_stream == MIG_STREAM_NONE ||
-           checkpointed_stream == MIG_STREAM_REMUS);
+    assert(checkpointed_stream == XC_MIG_STREAM_NONE ||
+           checkpointed_stream == XC_MIG_STREAM_REMUS);
 
     /*
      * TODO: Find some time to better tweak the live migration algorithm.
-- 
2.5.0




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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v4 2/3] tools: change checkpointed_stream's type from int to xc_migration_stream_t
  2016-03-15  1:58 [PATCH v4 1/3] libxc: move migration_stream's definition to xenguest.h Wen Congyang
@ 2016-03-15  1:58 ` Wen Congyang
  2016-03-17 13:53   ` Ian Jackson
  2016-03-15  1:58 ` [PATCH v4 3/3] libxl: rename checkpointed_stream to stream_type Wen Congyang
  1 sibling, 1 reply; 6+ messages in thread
From: Wen Congyang @ 2016-03-15  1:58 UTC (permalink / raw)
  To: xen devel, Andrew Cooper, Wei Liu; +Cc: Ian Jackson, Ian Campbell, Wen Congyang

checkpointed_stream is also renamed to stream_type

Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
---
v2->v3: Rename checkpointed_stream to stream_type
 tools/libxc/include/xenguest.h  |  8 ++++----
 tools/libxc/xc_nomigrate.c      |  4 ++--
 tools/libxc/xc_sr_restore.c     | 10 +++++-----
 tools/libxc/xc_sr_save.c        |  8 ++++----
 tools/libxl/libxl_save_helper.c | 42 ++++++++++++++++++++---------------------
 5 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/tools/libxc/include/xenguest.h b/tools/libxc/include/xenguest.h
index cf521c3..4f0b06e 100644
--- a/tools/libxc/include/xenguest.h
+++ b/tools/libxc/include/xenguest.h
@@ -86,14 +86,14 @@ typedef enum {
  * @parm xch a handle to an open hypervisor interface
  * @parm fd the file descriptor to save a domain to
  * @parm dom the id of the domain
- * @param checkpointed_stream XC_MIG_STREAM_NONE if the far end of the stream
+ * @param stream_type XC_MIG_STREAM_NONE if the far end of the stream
  *        doesn't use checkpointing
  * @return 0 on success, -1 on failure
  */
 int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iters,
                    uint32_t max_factor, uint32_t flags /* XCFLAGS_xxx */,
                    struct save_callbacks* callbacks, int hvm,
-                   int checkpointed_stream);
+                   xc_migration_stream_t stream_type);
 
 /* callbacks provided by xc_domain_restore */
 struct restore_callbacks {
@@ -121,7 +121,7 @@ struct restore_callbacks {
  * @parm hvm non-zero if this is a HVM restore
  * @parm pae non-zero if this HVM domain has PAE support enabled
  * @parm superpages non-zero to allocate guest memory with superpages
- * @parm checkpointed_stream non-zero if the far end of the stream is using checkpointing
+ * @parm stream_type non-zero if the far end of the stream is using checkpointing
  * @parm callbacks non-NULL to receive a callback to restore toolstack
  *       specific data
  * @return 0 on success, -1 on failure
@@ -131,7 +131,7 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
                       domid_t store_domid, unsigned int console_evtchn,
                       unsigned long *console_mfn, domid_t console_domid,
                       unsigned int hvm, unsigned int pae, int superpages,
-                      int checkpointed_stream,
+                      xc_migration_stream_t stream_type,
                       struct restore_callbacks *callbacks);
 
 /**
diff --git a/tools/libxc/xc_nomigrate.c b/tools/libxc/xc_nomigrate.c
index c9124df..08e1f8c 100644
--- a/tools/libxc/xc_nomigrate.c
+++ b/tools/libxc/xc_nomigrate.c
@@ -23,7 +23,7 @@
 int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iters,
                    uint32_t max_factor, uint32_t flags,
                    struct save_callbacks* callbacks, int hvm,
-                   int checkpointed_stream)
+                   xc_migration_stream_t stream_type)
 {
     errno = ENOSYS;
     return -1;
@@ -34,7 +34,7 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
                       domid_t store_domid, unsigned int console_evtchn,
                       unsigned long *console_mfn, domid_t console_domid,
                       unsigned int hvm, unsigned int pae, int superpages,
-                      int checkpointed_stream,
+                      xc_migration_stream_t stream_type,
                       struct restore_callbacks *callbacks)
 {
     errno = ENOSYS;
diff --git a/tools/libxc/xc_sr_restore.c b/tools/libxc/xc_sr_restore.c
index d4d33fd..819401d 100644
--- a/tools/libxc/xc_sr_restore.c
+++ b/tools/libxc/xc_sr_restore.c
@@ -725,7 +725,7 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
                       domid_t store_domid, unsigned int console_evtchn,
                       unsigned long *console_gfn, domid_t console_domid,
                       unsigned int hvm, unsigned int pae, int superpages,
-                      int checkpointed_stream,
+                      xc_migration_stream_t stream_type,
                       struct restore_callbacks *callbacks)
 {
     struct xc_sr_context ctx =
@@ -739,16 +739,16 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
     ctx.restore.console_domid = console_domid;
     ctx.restore.xenstore_evtchn = store_evtchn;
     ctx.restore.xenstore_domid = store_domid;
-    ctx.restore.checkpointed = checkpointed_stream;
+    ctx.restore.checkpointed = stream_type;
     ctx.restore.callbacks = callbacks;
 
     /* Sanity checks for callbacks. */
-    if ( checkpointed_stream )
+    if ( stream_type )
         assert(callbacks->checkpoint);
 
     DPRINTF("fd %d, dom %u, hvm %u, pae %u, superpages %d"
-            ", checkpointed_stream %d", io_fd, dom, hvm, pae,
-            superpages, checkpointed_stream);
+            ", stream_type %d", io_fd, dom, hvm, pae,
+            superpages, stream_type);
 
     if ( xc_domain_getinfo(xch, dom, 1, &ctx.dominfo) != 1 )
     {
diff --git a/tools/libxc/xc_sr_save.c b/tools/libxc/xc_sr_save.c
index ab59673..388ae7f 100644
--- a/tools/libxc/xc_sr_save.c
+++ b/tools/libxc/xc_sr_save.c
@@ -830,7 +830,7 @@ static int save(struct xc_sr_context *ctx, uint16_t guest_type)
 int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom,
                    uint32_t max_iters, uint32_t max_factor, uint32_t flags,
                    struct save_callbacks* callbacks, int hvm,
-                   int checkpointed_stream)
+                   xc_migration_stream_t stream_type)
 {
     struct xc_sr_context ctx =
         {
@@ -842,11 +842,11 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom,
     ctx.save.callbacks = callbacks;
     ctx.save.live  = !!(flags & XCFLAGS_LIVE);
     ctx.save.debug = !!(flags & XCFLAGS_DEBUG);
-    ctx.save.checkpointed = checkpointed_stream;
+    ctx.save.checkpointed = stream_type;
 
     /* If altering migration_stream update this assert too. */
-    assert(checkpointed_stream == XC_MIG_STREAM_NONE ||
-           checkpointed_stream == XC_MIG_STREAM_REMUS);
+    assert(stream_type == XC_MIG_STREAM_NONE ||
+           stream_type == XC_MIG_STREAM_REMUS);
 
     /*
      * TODO: Find some time to better tweak the live migration algorithm.
diff --git a/tools/libxl/libxl_save_helper.c b/tools/libxl/libxl_save_helper.c
index 6bdcf13..0fd7022 100644
--- a/tools/libxl/libxl_save_helper.c
+++ b/tools/libxl/libxl_save_helper.c
@@ -246,14 +246,14 @@ int main(int argc, char **argv)
 
     if (!strcmp(mode,"--save-domain")) {
 
-        io_fd =                    atoi(NEXTARG);
-        uint32_t dom =             strtoul(NEXTARG,0,10);
-        uint32_t max_iters =       strtoul(NEXTARG,0,10);
-        uint32_t max_factor =      strtoul(NEXTARG,0,10);
-        uint32_t flags =           strtoul(NEXTARG,0,10);
-        int hvm =                  atoi(NEXTARG);
-        unsigned cbflags =         strtoul(NEXTARG,0,10);
-        int checkpointed_stream =  strtoul(NEXTARG,0,10);
+        io_fd =                             atoi(NEXTARG);
+        uint32_t dom =                      strtoul(NEXTARG,0,10);
+        uint32_t max_iters =                strtoul(NEXTARG,0,10);
+        uint32_t max_factor =               strtoul(NEXTARG,0,10);
+        uint32_t flags =                    strtoul(NEXTARG,0,10);
+        int hvm =                           atoi(NEXTARG);
+        unsigned cbflags =                  strtoul(NEXTARG,0,10);
+        xc_migration_stream_t stream_type = strtoul(NEXTARG,0,10);
         assert(!*++argv);
 
         helper_setcallbacks_save(&helper_save_callbacks, cbflags);
@@ -262,22 +262,22 @@ int main(int argc, char **argv)
         setup_signals(save_signal_handler);
 
         r = xc_domain_save(xch, io_fd, dom, max_iters, max_factor, flags,
-                           &helper_save_callbacks, hvm, checkpointed_stream);
+                           &helper_save_callbacks, hvm, stream_type);
         complete(r);
 
     } else if (!strcmp(mode,"--restore-domain")) {
 
-        io_fd =                    atoi(NEXTARG);
-        uint32_t dom =             strtoul(NEXTARG,0,10);
-        unsigned store_evtchn =    strtoul(NEXTARG,0,10);
-        domid_t store_domid =      strtoul(NEXTARG,0,10);
-        unsigned console_evtchn =  strtoul(NEXTARG,0,10);
-        domid_t console_domid =    strtoul(NEXTARG,0,10);
-        unsigned int hvm =         strtoul(NEXTARG,0,10);
-        unsigned int pae =         strtoul(NEXTARG,0,10);
-        int superpages =           strtoul(NEXTARG,0,10);
-        unsigned cbflags =         strtoul(NEXTARG,0,10);
-        int checkpointed =         strtoul(NEXTARG,0,10);
+        io_fd =                             atoi(NEXTARG);
+        uint32_t dom =                      strtoul(NEXTARG,0,10);
+        unsigned store_evtchn =             strtoul(NEXTARG,0,10);
+        domid_t store_domid =               strtoul(NEXTARG,0,10);
+        unsigned console_evtchn =           strtoul(NEXTARG,0,10);
+        domid_t console_domid =             strtoul(NEXTARG,0,10);
+        unsigned int hvm =                  strtoul(NEXTARG,0,10);
+        unsigned int pae =                  strtoul(NEXTARG,0,10);
+        int superpages =                    strtoul(NEXTARG,0,10);
+        unsigned cbflags =                  strtoul(NEXTARG,0,10);
+        xc_migration_stream_t stream_type = strtoul(NEXTARG,0,10);
         assert(!*++argv);
 
         helper_setcallbacks_restore(&helper_restore_callbacks, cbflags);
@@ -291,7 +291,7 @@ int main(int argc, char **argv)
         r = xc_domain_restore(xch, io_fd, dom, store_evtchn, &store_mfn,
                               store_domid, console_evtchn, &console_mfn,
                               console_domid, hvm, pae, superpages,
-                              checkpointed,
+                              stream_type,
                               &helper_restore_callbacks);
         helper_stub_restore_results(store_mfn,console_mfn,0);
         complete(r);
-- 
2.5.0




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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v4 3/3] libxl: rename checkpointed_stream to stream_type
  2016-03-15  1:58 [PATCH v4 1/3] libxc: move migration_stream's definition to xenguest.h Wen Congyang
  2016-03-15  1:58 ` [PATCH v4 2/3] tools: change checkpointed_stream's type from int to xc_migration_stream_t Wen Congyang
@ 2016-03-15  1:58 ` Wen Congyang
  2016-03-15 12:54   ` Wei Liu
  1 sibling, 1 reply; 6+ messages in thread
From: Wen Congyang @ 2016-03-15  1:58 UTC (permalink / raw)
  To: xen devel, Andrew Cooper, Wei Liu; +Cc: Ian Jackson, Ian Campbell, Wen Congyang

Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
---
v3->v4: Remove the new macro, and updte the macro LIBXL_HAVE_CHECKPOINTED_STREAM
 tools/libxl/libxl.c              |  4 ++--
 tools/libxl/libxl.h              |  4 +++-
 tools/libxl/libxl_create.c       |  4 ++--
 tools/libxl/libxl_dom_save.c     |  6 +++---
 tools/libxl/libxl_internal.h     |  2 +-
 tools/libxl/libxl_save_callout.c |  4 ++--
 tools/libxl/libxl_stream_read.c  |  4 ++--
 tools/libxl/libxl_stream_write.c |  2 +-
 tools/libxl/libxl_types.idl      |  2 +-
 tools/libxl/xl_cmdimpl.c         | 16 ++++++++--------
 10 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 93e228d..7579dd2 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -876,7 +876,7 @@ int libxl_domain_remus_start(libxl_ctx *ctx, libxl_domain_remus_info *info,
     dss->live = 1;
     dss->debug = 0;
     dss->remus = info;
-    dss->checkpointed_stream = LIBXL_CHECKPOINTED_STREAM_REMUS;
+    dss->stream_type = LIBXL_CHECKPOINTED_STREAM_REMUS;
 
     assert(info);
 
@@ -937,7 +937,7 @@ int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, int flags,
     dss->type = type;
     dss->live = flags & LIBXL_SUSPEND_LIVE;
     dss->debug = flags & LIBXL_SUSPEND_DEBUG;
-    dss->checkpointed_stream = LIBXL_CHECKPOINTED_STREAM_NONE;
+    dss->stream_type = LIBXL_CHECKPOINTED_STREAM_NONE;
 
     rc = libxl__fd_flags_modify_save(gc, dss->fd,
                                      ~(O_NONBLOCK|O_NDELAY), 0,
diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
index f9e3ef5..c55094b 100644
--- a/tools/libxl/libxl.h
+++ b/tools/libxl/libxl.h
@@ -879,7 +879,9 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, libxl_mac *src);
 /*
  * LIBXL_HAVE_CHECKPOINTED_STREAM
  *
- * If this is defined, then libxl_checkpointed_stream exists.
+ * If this is defined, then libxl_checkpointed_stream exists, and the
+ * libxl_domain_create_restore() interface's parameter checkpointed_stream
+ * is renamed to stream_type
  */
 #define LIBXL_HAVE_CHECKPOINTED_STREAM 1
 
diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
index f1028bc..b28eb89 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -993,7 +993,7 @@ static void domcreate_bootloader_done(libxl__egc *egc,
     libxl_domain_config *const d_config = dcs->guest_config;
     const int restore_fd = dcs->restore_fd;
     libxl__domain_build_state *const state = &dcs->build_state;
-    const int checkpointed_stream = dcs->restore_params.checkpointed_stream;
+    const int stream_type = dcs->restore_params.stream_type;
 
     if (rc) {
         domcreate_rebuild_done(egc, dcs, rc);
@@ -1033,7 +1033,7 @@ static void domcreate_bootloader_done(libxl__egc *egc,
     dcs->srs.completion_callback = domcreate_stream_done;
 
     if (restore_fd >= 0) {
-        switch (checkpointed_stream) {
+        switch (stream_type) {
         case LIBXL_CHECKPOINTED_STREAM_REMUS:
             libxl__remus_restore_setup(egc, dcs);
             /* fall through */
diff --git a/tools/libxl/libxl_dom_save.c b/tools/libxl/libxl_dom_save.c
index f3288b9..ff92ef0 100644
--- a/tools/libxl/libxl_dom_save.c
+++ b/tools/libxl/libxl_dom_save.c
@@ -338,7 +338,7 @@ void libxl__domain_save(libxl__egc *egc, libxl__domain_save_state *dss)
     unsigned int nr_vnodes = 0, nr_vmemranges = 0, nr_vcpus = 0;
     libxl__domain_suspend_state *dsps = &dss->dsps;
 
-    if (dss->checkpointed_stream != LIBXL_CHECKPOINTED_STREAM_NONE && !r_info) {
+    if (dss->stream_type != LIBXL_CHECKPOINTED_STREAM_NONE && !r_info) {
         LOG(ERROR, "Migration stream is checkpointed, but there's no "
                    "checkpoint info!");
         rc = ERROR_INVAL;
@@ -383,12 +383,12 @@ void libxl__domain_save(libxl__egc *egc, libxl__domain_save_state *dss)
         goto out;
     }
 
-    if (dss->checkpointed_stream == LIBXL_CHECKPOINTED_STREAM_REMUS) {
+    if (dss->stream_type == LIBXL_CHECKPOINTED_STREAM_REMUS) {
         if (libxl_defbool_val(r_info->compression))
             dss->xcflags |= XCFLAGS_CHECKPOINT_COMPRESS;
     }
 
-    if (dss->checkpointed_stream == LIBXL_CHECKPOINTED_STREAM_NONE)
+    if (dss->stream_type == LIBXL_CHECKPOINTED_STREAM_NONE)
         callbacks->suspend = libxl__domain_suspend_callback;
 
     callbacks->switch_qemu_logdirty = libxl__domain_suspend_common_switch_qemu_logdirty;
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index 005fe53..0aada0d 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -3128,7 +3128,7 @@ struct libxl__domain_save_state {
     libxl_domain_type type;
     int live;
     int debug;
-    int checkpointed_stream;
+    libxl_checkpointed_stream stream_type;
     const libxl_domain_remus_info *remus;
     /* private */
     int rc;
diff --git a/tools/libxl/libxl_save_callout.c b/tools/libxl/libxl_save_callout.c
index 7f1f5d4..133d74e 100644
--- a/tools/libxl/libxl_save_callout.c
+++ b/tools/libxl/libxl_save_callout.c
@@ -61,7 +61,7 @@ void libxl__xc_domain_restore(libxl__egc *egc, libxl__domain_create_state *dcs,
         state->store_domid, state->console_port,
         state->console_domid,
         hvm, pae, superpages,
-        cbflags, dcs->restore_params.checkpointed_stream,
+        cbflags, dcs->restore_params.stream_type,
     };
 
     shs->ao = ao;
@@ -85,7 +85,7 @@ void libxl__xc_domain_save(libxl__egc *egc, libxl__domain_save_state *dss,
 
     const unsigned long argnums[] = {
         dss->domid, 0, 0, dss->xcflags, dss->hvm,
-        cbflags, dss->checkpointed_stream,
+        cbflags, dss->stream_type,
     };
 
     shs->ao = ao;
diff --git a/tools/libxl/libxl_stream_read.c b/tools/libxl/libxl_stream_read.c
index f4781eb..2c480c0 100644
--- a/tools/libxl/libxl_stream_read.c
+++ b/tools/libxl/libxl_stream_read.c
@@ -773,7 +773,7 @@ void libxl__xc_domain_restore_done(libxl__egc *egc, void *dcs_void,
     STATE_AO_GC(dcs->ao);
 
     /* convenience aliases */
-    const int checkpointed_stream = dcs->restore_params.checkpointed_stream;
+    const int stream_type = dcs->restore_params.stream_type;
 
     if (rc)
         goto err;
@@ -794,7 +794,7 @@ 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)) {
-        switch (checkpointed_stream) {
+        switch (stream_type) {
         case LIBXL_CHECKPOINTED_STREAM_REMUS:
             /*
              * Failover from primary. Domain state is currently at a
diff --git a/tools/libxl/libxl_stream_write.c b/tools/libxl/libxl_stream_write.c
index f6ea55d..4894f51 100644
--- a/tools/libxl/libxl_stream_write.c
+++ b/tools/libxl/libxl_stream_write.c
@@ -355,7 +355,7 @@ void libxl__xc_domain_save_done(libxl__egc *egc, void *dss_void,
      * If the stream is not still alive, we must not continue any work.
      */
     if (libxl__stream_write_inuse(stream)) {
-        if (dss->checkpointed_stream != LIBXL_CHECKPOINTED_STREAM_NONE)
+        if (dss->stream_type != LIBXL_CHECKPOINTED_STREAM_NONE)
             /*
              * For remus, if libxl__xc_domain_save_done() completes,
              * there was an error sending data to the secondary.
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index 632c009..7cfeb83 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -382,7 +382,7 @@ libxl_domain_create_info = Struct("domain_create_info",[
     ], dir=DIR_IN)
 
 libxl_domain_restore_params = Struct("domain_restore_params", [
-    ("checkpointed_stream", integer),
+    ("stream_type", integer),
     ("stream_version", uint32, {'init_val': '1'}),
     ])
 
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index 990d3c9..006f3e1 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -154,7 +154,7 @@ struct domain_create {
     int vnc;
     int vncautopass;
     int console_autoconnect;
-    int checkpointed_stream;
+    int stream_type;
     const char *config_file;
     char *extra_config; /* extra config string */
     const char *restore_file;
@@ -2890,7 +2890,7 @@ start:
 
         libxl_domain_restore_params_init(&params);
 
-        params.checkpointed_stream = dom_info->checkpointed_stream;
+        params.stream_type = dom_info->stream_type;
         params.stream_version =
             (hdr.mandatory_flags & XL_MANDATORY_FLAG_STREAMv2) ? 2 : 1;
 
@@ -4435,7 +4435,7 @@ 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,
-                            libxl_checkpointed_stream checkpointed)
+                            libxl_checkpointed_stream stream_type)
 {
     uint32_t domid;
     int rc, rc2;
@@ -4460,7 +4460,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 = checkpointed;
+    dom_info.stream_type = stream_type;
 
     rc = create_domain(&dom_info);
     if (rc < 0) {
@@ -4471,7 +4471,7 @@ static void migrate_receive(int debug, int daemonize, int monitor,
 
     domid = rc;
 
-    switch (checkpointed) {
+    switch (stream_type) {
     case LIBXL_CHECKPOINTED_STREAM_REMUS:
         /* If we are here, it means that the sender (primary) has crashed.
          * TODO: Split-Brain Check.
@@ -4646,7 +4646,7 @@ int main_restore(int argc, char **argv)
 int main_migrate_receive(int argc, char **argv)
 {
     int debug = 0, daemonize = 1, monitor = 1;
-    libxl_checkpointed_stream checkpointed = LIBXL_CHECKPOINTED_STREAM_NONE;
+    libxl_checkpointed_stream stream_type = LIBXL_CHECKPOINTED_STREAM_NONE;
     int opt;
 
     SWITCH_FOREACH_OPT(opt, "Fedr", NULL, "migrate-receive", 0) {
@@ -4661,7 +4661,7 @@ int main_migrate_receive(int argc, char **argv)
         debug = 1;
         break;
     case 'r':
-        checkpointed = LIBXL_CHECKPOINTED_STREAM_REMUS;
+        stream_type = LIBXL_CHECKPOINTED_STREAM_REMUS;
         break;
     }
 
@@ -4671,7 +4671,7 @@ int main_migrate_receive(int argc, char **argv)
     }
     migrate_receive(debug, daemonize, monitor,
                     STDOUT_FILENO, STDIN_FILENO,
-                    checkpointed);
+                    stream_type);
 
     return 0;
 }
-- 
2.5.0




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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 3/3] libxl: rename checkpointed_stream to stream_type
  2016-03-15  1:58 ` [PATCH v4 3/3] libxl: rename checkpointed_stream to stream_type Wen Congyang
@ 2016-03-15 12:54   ` Wei Liu
  2016-03-16  1:08     ` Wen Congyang
  0 siblings, 1 reply; 6+ messages in thread
From: Wei Liu @ 2016-03-15 12:54 UTC (permalink / raw)
  To: Wen Congyang; +Cc: Ian Jackson, Andrew Cooper, Wei Liu, Ian Campbell, xen devel

On Tue, Mar 15, 2016 at 09:58:37AM +0800, Wen Congyang wrote:
> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
> ---
> v3->v4: Remove the new macro, and updte the macro LIBXL_HAVE_CHECKPOINTED_STREAM
>  tools/libxl/libxl.c              |  4 ++--
>  tools/libxl/libxl.h              |  4 +++-
>  tools/libxl/libxl_create.c       |  4 ++--
>  tools/libxl/libxl_dom_save.c     |  6 +++---
>  tools/libxl/libxl_internal.h     |  2 +-
>  tools/libxl/libxl_save_callout.c |  4 ++--
>  tools/libxl/libxl_stream_read.c  |  4 ++--
>  tools/libxl/libxl_stream_write.c |  2 +-
>  tools/libxl/libxl_types.idl      |  2 +-
>  tools/libxl/xl_cmdimpl.c         | 16 ++++++++--------
>  10 files changed, 25 insertions(+), 23 deletions(-)
> 
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index 93e228d..7579dd2 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -876,7 +876,7 @@ int libxl_domain_remus_start(libxl_ctx *ctx, libxl_domain_remus_info *info,
>      dss->live = 1;
>      dss->debug = 0;
>      dss->remus = info;
> -    dss->checkpointed_stream = LIBXL_CHECKPOINTED_STREAM_REMUS;
> +    dss->stream_type = LIBXL_CHECKPOINTED_STREAM_REMUS;
>  
>      assert(info);
>  
> @@ -937,7 +937,7 @@ int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, int flags,
>      dss->type = type;
>      dss->live = flags & LIBXL_SUSPEND_LIVE;
>      dss->debug = flags & LIBXL_SUSPEND_DEBUG;
> -    dss->checkpointed_stream = LIBXL_CHECKPOINTED_STREAM_NONE;
> +    dss->stream_type = LIBXL_CHECKPOINTED_STREAM_NONE;
>  
>      rc = libxl__fd_flags_modify_save(gc, dss->fd,
>                                       ~(O_NONBLOCK|O_NDELAY), 0,
> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
> index f9e3ef5..c55094b 100644
> --- a/tools/libxl/libxl.h
> +++ b/tools/libxl/libxl.h
> @@ -879,7 +879,9 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, libxl_mac *src);
>  /*
>   * LIBXL_HAVE_CHECKPOINTED_STREAM
>   *
> - * If this is defined, then libxl_checkpointed_stream exists.
> + * If this is defined, then libxl_checkpointed_stream exists, and the
> + * libxl_domain_create_restore() interface's parameter checkpointed_stream
> + * is renamed to stream_type
>   */
>  #define LIBXL_HAVE_CHECKPOINTED_STREAM 1

I just realised this patch have not provided compatibility shim for
older version of LIBXL_API.

It now breaks backward compatibility because it changes existing API.
It's my fault for not observing this earlier, sorry.

On the other hand, I don't think this patch is strictly necessary.
Andrew's original complain was about libxc not exporting XC_MIG_* types.
I think libxl can function just fine as is with the old name.

So if you really wish to change the name of that field, I'm afraid
compatibility shim for all functions that accept
libxl_domain_restore_params is required.

I suggest we drop this patch for now and focus on core COLO
functionality, what do you think?

Wei.

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 3/3] libxl: rename checkpointed_stream to stream_type
  2016-03-15 12:54   ` Wei Liu
@ 2016-03-16  1:08     ` Wen Congyang
  0 siblings, 0 replies; 6+ messages in thread
From: Wen Congyang @ 2016-03-16  1:08 UTC (permalink / raw)
  To: Wei Liu; +Cc: Andrew Cooper, Ian Jackson, Ian Campbell, xen devel

On 03/15/2016 08:54 PM, Wei Liu wrote:
> On Tue, Mar 15, 2016 at 09:58:37AM +0800, Wen Congyang wrote:
>> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
>> ---
>> v3->v4: Remove the new macro, and updte the macro LIBXL_HAVE_CHECKPOINTED_STREAM
>>  tools/libxl/libxl.c              |  4 ++--
>>  tools/libxl/libxl.h              |  4 +++-
>>  tools/libxl/libxl_create.c       |  4 ++--
>>  tools/libxl/libxl_dom_save.c     |  6 +++---
>>  tools/libxl/libxl_internal.h     |  2 +-
>>  tools/libxl/libxl_save_callout.c |  4 ++--
>>  tools/libxl/libxl_stream_read.c  |  4 ++--
>>  tools/libxl/libxl_stream_write.c |  2 +-
>>  tools/libxl/libxl_types.idl      |  2 +-
>>  tools/libxl/xl_cmdimpl.c         | 16 ++++++++--------
>>  10 files changed, 25 insertions(+), 23 deletions(-)
>>
>> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
>> index 93e228d..7579dd2 100644
>> --- a/tools/libxl/libxl.c
>> +++ b/tools/libxl/libxl.c
>> @@ -876,7 +876,7 @@ int libxl_domain_remus_start(libxl_ctx *ctx, libxl_domain_remus_info *info,
>>      dss->live = 1;
>>      dss->debug = 0;
>>      dss->remus = info;
>> -    dss->checkpointed_stream = LIBXL_CHECKPOINTED_STREAM_REMUS;
>> +    dss->stream_type = LIBXL_CHECKPOINTED_STREAM_REMUS;
>>  
>>      assert(info);
>>  
>> @@ -937,7 +937,7 @@ int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, int flags,
>>      dss->type = type;
>>      dss->live = flags & LIBXL_SUSPEND_LIVE;
>>      dss->debug = flags & LIBXL_SUSPEND_DEBUG;
>> -    dss->checkpointed_stream = LIBXL_CHECKPOINTED_STREAM_NONE;
>> +    dss->stream_type = LIBXL_CHECKPOINTED_STREAM_NONE;
>>  
>>      rc = libxl__fd_flags_modify_save(gc, dss->fd,
>>                                       ~(O_NONBLOCK|O_NDELAY), 0,
>> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
>> index f9e3ef5..c55094b 100644
>> --- a/tools/libxl/libxl.h
>> +++ b/tools/libxl/libxl.h
>> @@ -879,7 +879,9 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, libxl_mac *src);
>>  /*
>>   * LIBXL_HAVE_CHECKPOINTED_STREAM
>>   *
>> - * If this is defined, then libxl_checkpointed_stream exists.
>> + * If this is defined, then libxl_checkpointed_stream exists, and the
>> + * libxl_domain_create_restore() interface's parameter checkpointed_stream
>> + * is renamed to stream_type
>>   */
>>  #define LIBXL_HAVE_CHECKPOINTED_STREAM 1
> 
> I just realised this patch have not provided compatibility shim for
> older version of LIBXL_API.
> 
> It now breaks backward compatibility because it changes existing API.
> It's my fault for not observing this earlier, sorry.
> 
> On the other hand, I don't think this patch is strictly necessary.
> Andrew's original complain was about libxc not exporting XC_MIG_* types.
> I think libxl can function just fine as is with the old name.
> 
> So if you really wish to change the name of that field, I'm afraid
> compatibility shim for all functions that accept
> libxl_domain_restore_params is required.
> 
> I suggest we drop this patch for now and focus on core COLO
> functionality, what do you think?

It is OK to drop this patch.

Thanks
Wen Congyang

> 
> Wei.
> 
> 
> .
> 




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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 2/3] tools: change checkpointed_stream's type from int to xc_migration_stream_t
  2016-03-15  1:58 ` [PATCH v4 2/3] tools: change checkpointed_stream's type from int to xc_migration_stream_t Wen Congyang
@ 2016-03-17 13:53   ` Ian Jackson
  0 siblings, 0 replies; 6+ messages in thread
From: Ian Jackson @ 2016-03-17 13:53 UTC (permalink / raw)
  To: Wen Congyang; +Cc: Andrew Cooper, Wei Liu, Ian Campbell, xen devel

Wen Congyang writes ("[PATCH v4 2/3] tools: change checkpointed_stream's type from int to xc_migration_stream_t"):
> checkpointed_stream is also renamed to stream_type
> 
> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
> Acked-by: Wei Liu <wei.liu2@citrix.com>

I have applied 1/3 and 2/3.

Thanks,
Ian.

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-03-17 13:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-15  1:58 [PATCH v4 1/3] libxc: move migration_stream's definition to xenguest.h Wen Congyang
2016-03-15  1:58 ` [PATCH v4 2/3] tools: change checkpointed_stream's type from int to xc_migration_stream_t Wen Congyang
2016-03-17 13:53   ` Ian Jackson
2016-03-15  1:58 ` [PATCH v4 3/3] libxl: rename checkpointed_stream to stream_type Wen Congyang
2016-03-15 12:54   ` Wei Liu
2016-03-16  1:08     ` Wen Congyang

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).