From: Ian Campbell <ian.campbell@citrix.com>
To: Yang Hongyang <yanghy@cn.fujitsu.com>
Cc: wei.liu2@citrix.com, wency@cn.fujitsu.com,
andrew.cooper3@citrix.com, yunhong.jiang@intel.com,
eddie.dong@intel.com, xen-devel@lists.xen.org,
guijianfeng@cn.fujitsu.com, rshriram@cs.ubc.ca,
ian.jackson@eu.citrix.com
Subject: Re: [PATCH v2 COLOPre 06/13] tools/libxl: Introduce a new internal API libxl__domain_unpause()
Date: Thu, 11 Jun 2015 09:43:32 +0100 [thread overview]
Message-ID: <1434012212.30003.119.camel@citrix.com> (raw)
In-Reply-To: <5578F0A3.5060208@cn.fujitsu.com>
On Thu, 2015-06-11 at 10:21 +0800, Yang Hongyang wrote:
>
> On 06/10/2015 11:37 PM, Ian Campbell wrote:
> > On Mon, 2015-06-08 at 11:43 +0800, Yang Hongyang wrote:
> >> From: Wen Congyang <wency@cn.fujitsu.com>
> >>
> >> The guest is paused after libxl_domain_create_restore().
> >> Secondary vm is running in colo mode. So we need to unpause
> >> the guest. The current API libxl_domain_unpause() is
> >> not an internal API. Introduce a new API to support it.
> >> No functional change.
> >
> > In general there is nothing wrong with using a public function
> > internally. Is there some special consideration here?
>
> It's just that we thought it's better to use internal functions for
> internal purpose.
> Most the public functions take ctx as the first param, the internal functions
> take gc/egc as the first param(although we can get ctx from gcs and call
> public functions when needed).
> If it doesn't matter, we can drop this patch.
It doesn't matter so you can, yes.
>
> >
> >>
> >> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
> >> Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
> >> ---
> >> tools/libxl/libxl.c | 20 ++++++++++++++------
> >> tools/libxl/libxl_internal.h | 1 +
> >> 2 files changed, 15 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> >> index ba2da92..d5691dc 100644
> >> --- a/tools/libxl/libxl.c
> >> +++ b/tools/libxl/libxl.c
> >> @@ -933,9 +933,8 @@ out:
> >> return AO_INPROGRESS;
> >> }
> >>
> >> -int libxl_domain_unpause(libxl_ctx *ctx, uint32_t domid)
> >> +int libxl__domain_unpause(libxl__gc *gc, uint32_t domid)
> >> {
> >> - GC_INIT(ctx);
> >> char *path;
> >> char *state;
> >> int ret, rc = 0;
> >> @@ -947,7 +946,7 @@ int libxl_domain_unpause(libxl_ctx *ctx, uint32_t domid)
> >> }
> >>
> >> if (type == LIBXL_DOMAIN_TYPE_HVM) {
> >> - uint32_t dm_domid = libxl_get_stubdom_id(ctx, domid);
> >> + uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
> >>
> >> path = libxl__device_model_xs_path(gc, dm_domid, domid, "/state");
> >> state = libxl__xs_read(gc, XBT_NULL, path);
> >> @@ -957,12 +956,21 @@ int libxl_domain_unpause(libxl_ctx *ctx, uint32_t domid)
> >> NULL, NULL, NULL);
> >> }
> >> }
> >> - ret = xc_domain_unpause(ctx->xch, domid);
> >> - if (ret<0) {
> >> - LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "unpausing domain %d", domid);
> >> +
> >> + ret = xc_domain_unpause(CTX->xch, domid);
> >> + if (ret < 0) {
> >> + LIBXL__LOG_ERRNO(CTX, LIBXL__LOG_ERROR, "unpausing domain %d", domid);
> >> rc = ERROR_FAIL;
> >> }
> >> out:
> >> + return rc;
> >> +}
> >> +
> >> +int libxl_domain_unpause(libxl_ctx *ctx, uint32_t domid)
> >> +{
> >> + GC_INIT(ctx);
> >> + int rc = libxl__domain_unpause(gc, domid);
> >> +
> >> GC_FREE;
> >> return rc;
> >> }
> >> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
> >> index 20364c6..366470f 100644
> >> --- a/tools/libxl/libxl_internal.h
> >> +++ b/tools/libxl/libxl_internal.h
> >> @@ -1044,6 +1044,7 @@ _hidden int libxl__domain_restore(libxl__gc *gc, uint32_t domid);
> >> _hidden int libxl__domain_resume(libxl__gc *gc, uint32_t domid,
> >> int suspend_cancel);
> >> _hidden int libxl__domain_s3_resume(libxl__gc *gc, int domid);
> >> +_hidden int libxl__domain_unpause(libxl__gc *gc, uint32_t domid);
> >>
> >> /* returns 0 or 1, or a libxl error code */
> >> _hidden int libxl__domain_pvcontrol_available(libxl__gc *gc, uint32_t domid);
> >
> >
> > .
> >
>
next prev parent reply other threads:[~2015-06-11 8:43 UTC|newest]
Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-08 3:43 [PATCH v2 COLOPre 00/13] Prerequisite patches for COLO Yang Hongyang
2015-06-08 3:43 ` [PATCH v2 COLOPre 01/13] libxc/restore: fix error handle of process_record Yang Hongyang
2015-06-08 9:24 ` Andrew Cooper
2015-06-08 9:37 ` Yang Hongyang
2015-06-08 9:39 ` Andrew Cooper
2015-06-10 14:55 ` Ian Campbell
2015-06-11 2:10 ` Yang Hongyang
2015-06-08 3:43 ` [PATCH v2 COLOPre 02/13] tools/libxc: support to resume uncooperative HVM guests Yang Hongyang
2015-06-10 15:18 ` Ian Campbell
2015-06-11 2:42 ` Wen Congyang
2015-06-11 8:44 ` Ian Campbell
2015-06-11 8:56 ` Wen Congyang
2015-06-11 9:41 ` Ian Campbell
2015-06-08 3:43 ` [PATCH v2 COLOPre 03/13] libxc/restore: zero ioreq page only one time Yang Hongyang
2015-06-08 9:46 ` Andrew Cooper
2015-06-08 9:49 ` Andrew Cooper
2015-06-08 9:58 ` Yang Hongyang
2015-06-08 10:15 ` Andrew Cooper
2015-06-09 0:59 ` Yang Hongyang
2015-06-09 7:30 ` Andrew Cooper
2015-06-10 5:26 ` Yang Hongyang
2015-06-10 7:44 ` Andrew Cooper
2015-06-10 9:06 ` Wen Congyang
2015-06-10 10:08 ` Andrew Cooper
2015-06-10 10:35 ` Paul Durrant
2015-06-10 10:40 ` Paul Durrant
2015-06-10 10:54 ` Wen Congyang
2015-06-10 10:58 ` Paul Durrant
2015-06-10 11:37 ` Wen Congyang
2015-06-10 11:47 ` Paul Durrant
2015-06-11 1:13 ` Wen Congyang
2015-06-11 8:32 ` Paul Durrant
2015-06-11 8:48 ` Wen Congyang
2015-06-11 10:20 ` Paul Durrant
2015-06-11 11:14 ` Wen Congyang
2015-06-11 12:54 ` Yang Hongyang
2015-06-12 3:39 ` Yang Hongyang
2015-06-11 12:58 ` Yang Hongyang
2015-06-11 13:25 ` Paul Durrant
2015-06-12 3:22 ` Wen Congyang
2015-06-12 7:41 ` Paul Durrant
2015-06-12 10:26 ` Wen Congyang
2015-06-12 10:54 ` Paul Durrant
2015-06-12 11:09 ` Wen Congyang
2015-06-12 11:48 ` Paul Durrant
2015-06-12 15:04 ` Wen Congyang
2015-06-12 15:31 ` Paul Durrant
2015-06-13 5:58 ` Wen Congyang
2015-06-08 3:43 ` [PATCH v2 COLOPre 04/13] tools/libxc: export xc_bitops.h Yang Hongyang
2015-06-08 10:04 ` Yang Hongyang
2015-06-10 15:20 ` Ian Campbell
2015-06-11 2:07 ` Yang Hongyang
2015-06-11 8:41 ` Ian Campbell
2015-06-11 10:45 ` Andrew Cooper
2015-06-11 10:55 ` Ian Campbell
2015-06-15 1:50 ` Yang Hongyang
2015-06-08 3:43 ` [PATCH v2 COLOPre 05/13] tools/libxl: introduce a new API libxl__domain_restore() to load qemu state Yang Hongyang
2015-06-10 15:35 ` Ian Campbell
2015-06-11 2:09 ` Yang Hongyang
2015-06-11 8:43 ` Ian Campbell
2015-06-11 8:55 ` Yang Hongyang
2015-06-11 9:41 ` Ian Campbell
2015-06-08 3:43 ` [PATCH v2 COLOPre 06/13] tools/libxl: Introduce a new internal API libxl__domain_unpause() Yang Hongyang
2015-06-10 15:37 ` Ian Campbell
2015-06-11 2:21 ` Yang Hongyang
2015-06-11 8:43 ` Ian Campbell [this message]
2015-06-11 9:09 ` Wen Congyang
2015-06-11 9:42 ` Ian Campbell
2015-06-11 9:48 ` Wen Congyang
2015-06-12 11:23 ` Ian Jackson
2015-06-08 3:43 ` [PATCH v2 COLOPre 07/13] tools/libxl: Update libxl__domain_unpause() to support qemu-xen Yang Hongyang
2015-06-12 12:33 ` Wei Liu
2015-06-15 1:29 ` Yang Hongyang
2015-06-15 16:22 ` Wei Liu
2015-06-17 9:02 ` Yang Hongyang
2015-06-08 3:43 ` [PATCH v2 COLOPre 08/13] tools/libxl: introduce libxl__domain_common_switch_qemu_logdirty() Yang Hongyang
2015-06-16 10:45 ` Ian Campbell
2015-06-08 3:43 ` [PATCH v2 COLOPre 09/13] tools/libxl: Update libxl_save_msgs_gen.pl to support return data from xl to xc Yang Hongyang
2015-06-16 10:49 ` Ian Campbell
2015-06-16 10:54 ` Wen Congyang
2015-06-16 10:56 ` Ian Jackson
2015-06-16 11:01 ` Ian Jackson
2015-06-16 11:05 ` Ian Jackson
2015-06-16 14:19 ` Yang Hongyang
2015-06-08 3:43 ` [PATCH v2 COLOPre 10/13] tools/libxl: Add back channel to allow migration target send data back Yang Hongyang
2015-06-12 12:54 ` Wei Liu
2015-06-12 15:04 ` Ian Jackson
2015-06-15 1:38 ` Yang Hongyang
2015-06-16 10:52 ` Ian Campbell
2015-06-16 10:58 ` Ian Jackson
2015-06-15 1:33 ` Yang Hongyang
2015-06-08 3:43 ` [PATCH v2 COLOPre 11/13] tools/libxl: rename remus device to checkpoint device Yang Hongyang
2015-06-12 13:30 ` Wei Liu
2015-06-12 13:35 ` Wei Liu
2015-06-12 14:57 ` Ian Jackson
2015-06-15 1:45 ` Yang Hongyang
2015-06-15 16:24 ` Wei Liu
2015-06-16 10:53 ` Ian Campbell
2015-06-25 5:00 ` Yang Hongyang
2015-06-25 9:09 ` Wei Liu
2015-06-25 9:16 ` Yang Hongyang
2015-06-08 3:43 ` [PATCH v2 COLOPre 12/13] tools/libxl: adjust the indentation Yang Hongyang
2015-06-16 10:53 ` Ian Campbell
2015-06-08 3:43 ` [PATCH v2 COLOPre 13/13] tools/libxl: don't touch remus in checkpoint_device Yang Hongyang
2015-06-12 13:28 ` Wei Liu
2015-06-15 1:46 ` Yang Hongyang
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=1434012212.30003.119.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=eddie.dong@intel.com \
--cc=guijianfeng@cn.fujitsu.com \
--cc=ian.jackson@eu.citrix.com \
--cc=rshriram@cs.ubc.ca \
--cc=wei.liu2@citrix.com \
--cc=wency@cn.fujitsu.com \
--cc=xen-devel@lists.xen.org \
--cc=yanghy@cn.fujitsu.com \
--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 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.