From: Ian Campbell <ian.campbell@citrix.com>
To: Jim Fehlig <jfehlig@suse.com>
Cc: wei.liu2@citrix.com, Ian.Jackson@eu.citrix.com, xen-devel@lists.xen.org
Subject: Re: [PATCH 3/3] libxl: Domain destroy: fork
Date: Wed, 18 Mar 2015 12:27:20 +0000 [thread overview]
Message-ID: <1426681640.18247.359.camel@citrix.com> (raw)
In-Reply-To: <1426606259-9692-4-git-send-email-jfehlig@suse.com>
On Tue, 2015-03-17 at 09:30 -0600, Jim Fehlig wrote:
> From: Ian Jackson <ian.jackson@eu.citrix.com>
>
> Call xc_domain_destroy in a subprocess. That allows us to do so
> asynchronously, rather than blocking the whole process calling libxl.
>
> The changes in detail:
>
> * Provide an libxl__ev_child in libxl__domain_destroy_state, and
> initialise it in libxl__domain_destroy. There is no possibility
> to `clean up' a libxl__ev_child, but there need to clean it up, as
^is no ?
> the control flow ensures that we only continue after the child has
> exited.
>
> * Call libxl__ev_child_fork at the right point and put the call to
> xc_domain_destroy and associated logging in the child. (The child
> opens a new xenctrl handle because we mustn't use the parent's.)
Do I read it correctly that this is arranging to use the same logger as
the parent was, IOW the log messages will still go somewhere the
application considers useful?
>
> * Consequently, the success return path from domain_destroy_domid_cb
> no longer calls dis->callback. Instead it simply returns.
>
> * We plumb the errorno value through the child's exit status, if it
> fits. This means we normally do the logging only in the parent.
(This makes my question above moot I think).
> * Incidentally, we fix the bug that we were treating the return value
> from xc_domain_destroy as an errno value when in fact it is a
> return value from do_domctl (in this case, 0 or -1 setting errno).
>
> Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
> Reviewed-by: Jim Fehlig <jfehlig@suse.com>
> Tested-by: Jim Fehlig <jfehlig@suse.com>
> ---
> tools/libxl/libxl.c | 57 ++++++++++++++++++++++++++++++++++++++++----
> tools/libxl/libxl_internal.h | 1 +
> 2 files changed, 53 insertions(+), 5 deletions(-)
>
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index b6541d4..b43db1a 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -1481,6 +1481,10 @@ static void domain_destroy_callback(libxl__egc *egc,
> static void destroy_finish_check(libxl__egc *egc,
> libxl__domain_destroy_state *dds);
>
> +static void domain_destroy_domid_cb(libxl__egc *egc,
> + libxl__ev_child *destroyer,
> + pid_t pid, int status);
This seems misplaced, doesn't it want to go before libxl__destroy_domid
just after the prototype of devices_destroy_cb, which is where it lives
in the sequence?
Ian.
next prev parent reply other threads:[~2015-03-18 12:27 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-17 15:30 [PATCH 0/3] libxl: Fixes from Ian Jackson Jim Fehlig
2015-03-17 15:30 ` [PATCH 1/3] libxl: In domain death search, start search at first domid we want Jim Fehlig
2015-03-17 17:34 ` Wei Liu
2015-03-18 12:19 ` Ian Campbell
2015-03-18 17:47 ` Jim Fehlig
2015-03-19 10:22 ` Ian Campbell
2015-03-17 15:30 ` [PATCH 2/3] libxl: Domain destroy: unlock userdata earlier Jim Fehlig
2015-03-17 17:34 ` Wei Liu
2015-03-18 12:20 ` Ian Campbell
2015-03-18 17:52 ` Jim Fehlig
2015-03-20 11:58 ` Ian Campbell
2015-03-17 15:30 ` [PATCH 3/3] libxl: Domain destroy: fork Jim Fehlig
2015-03-17 18:04 ` Wei Liu
2015-03-18 12:28 ` Ian Campbell
2015-03-18 12:27 ` Ian Campbell [this message]
2015-03-20 15:14 ` Jim Fehlig
2015-03-20 16:03 ` Ian Campbell
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=1426681640.18247.359.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=jfehlig@suse.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
/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.