xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Ian Campbell <Ian.Campbell@citrix.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@citrix.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [PATCH v11 01/17] libxl: fix stubdom console destruction
Date: Tue, 24 Jul 2012 08:50:36 +0100	[thread overview]
Message-ID: <1343116236.8016.24.camel@dagon.hellion.org.uk> (raw)
In-Reply-To: <1343064465-17864-2-git-send-email-roger.pau@citrix.com>

On Mon, 2012-07-23 at 18:27 +0100, Roger Pau Monne wrote:
> Stubdoms have several consoles attached, and they don't follow the
> xenstore protocol for devices, since they are always in state 1. We
> have to add an exception to libxl__initiate_device_remove, so libxl
> doesn't wait for them to reach state 6 (Closed).
> 
> Report: http://markmail.org/message/yqgppcsdip6tnmh6
> 
> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> Reported-by: Ian Campbell <ian.campbell@eu.citrix.com>
> Signed-off-by: Roger Pau Monne <roger.pau@citrix.com>
> ---
>  tools/libxl/libxl_device.c |    6 ++++--
>  1 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
> index a94beab..c4392fa 100644
> --- a/tools/libxl/libxl_device.c
> +++ b/tools/libxl/libxl_device.c
> @@ -592,8 +592,10 @@ void libxl__initiate_device_remove(libxl__egc *egc,
>          LOG(ERROR, "unable to get info for domain %d", domid);
>          goto out;
>      }
> -    if (QEMU_BACKEND(aodev->dev) &&
> -        (info.paused || info.dying || info.shutdown)) {
> +    if ((QEMU_BACKEND(aodev->dev) &&
> +        (info.paused || info.dying || info.shutdown)) ||
> +        (libxl_is_stubdom(CTX, aodev->dev->domid, NULL) &&
> +        (aodev->dev->backend_kind == LIBXL__DEVICE_KIND_CONSOLE))) {

Is this actually specific to stubdom consoles or is that just where
we've noticed it? I don't see why it wouldn't be relevant to any PV
console other than the first (which I assume you special case
elsewhere?)

Probably the logic would be clearer in a helper, i.e.
dev_is_stubdom_console? or encapsulate both bits of logic in
dev_needs_shutdown?

Does it apply to LIBXL__CONSOLE_BACKEND_IOEMU as well
as ..._XENCONSOLED? I took a look through tools/console and I cannot
find any handling of a state node in xenstore at all, so the XENCONSOLED
case seems clear. I notice that xen_console.c registers the device with
DEVOPS_FLAG_IGNORE_STATE but that only seems to affect startup not
teardown. I don't see a qemu_chr_close (or anything similar) anywhere in
hw/xen_console.c


>          /*
>           * TODO: 4.2 Bodge due to QEMU, see comment on top of
>           * libxl__initiate_device_remove in libxl_internal.h

I suppose this comment needs updating now that the conditional has
changed? In particular the special handling of consoles is not a qemu
related bodge.

Ian.

  reply	other threads:[~2012-07-24  7:50 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-23 17:27 [PATCH v11 0/17] execute hotplug scripts from libxl Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 01/17] libxl: fix stubdom console destruction Roger Pau Monne
2012-07-24  7:50   ` Ian Campbell [this message]
2012-07-24  8:39     ` Roger Pau Monne
2012-07-24 10:16       ` Stefano Stabellini
2012-07-24 10:54         ` Roger Pau Monne
2012-07-24 10:57           ` Ian Campbell
2012-07-24 11:01             ` Roger Pau Monne
2012-07-24 11:58               ` Stefano Stabellini
2012-07-24 12:14                 ` Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 02/17] libxl: refactor disk addition to take a helper Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 03/17] libxl: convert libxl__device_disk_local_attach to an async op Roger Pau Monne
2012-07-24 15:19   ` Ian Jackson
2012-07-24 16:09     ` Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 04/17] libxl: rename vifs to nics Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 05/17] libxl: convert libxl_device_disk_add to an async op Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 06/17] libxl: convert libxl_device_nic_add to an async operation Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 07/17] libxl: add option to choose who executes hotplug scripts Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 08/17] libxl: rename _IOEMU nic type to VIF_IOEMU Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 09/17] libxl: set nic type of stub to PV instead of copying from the parent Roger Pau Monne
2012-07-24 15:27   ` Ian Jackson
2012-07-24 15:32     ` Ian Campbell
2012-07-24 16:05       ` Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 10/17] libxl: set correct nic type depending on the guest Roger Pau Monne
2012-07-24 15:28   ` Ian Jackson
2012-07-24 16:02     ` Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 11/17] libxl: use libxl__xs_path_cleanup on device_destroy Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 12/17] libxl: call hotplug scripts for disk devices from libxl Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 13/17] libxl: call hotplug scripts for nic " Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 14/17] libxl: convert libxl_device_vkb_add to an async operation Roger Pau Monne
2012-07-23 17:27 ` [PATCH v11 15/17] libxl: convert libxl_device_vfb_add " Roger Pau Monne
2012-07-24 15:20   ` Ian Jackson
2012-07-25 11:00     ` Roger Pau Monne
2012-07-26 14:26       ` Ian Jackson
2012-07-23 17:27 ` [PATCH v11 16/17] xl: main_blockdetach don't call destroy if remove succeeds Roger Pau Monne
2012-07-24 15:29   ` Ian Jackson
2012-07-23 17:27 ` [PATCH v11 17/17] libxl: libxl__xs_path_cleanup don't print error if ENOENT Roger Pau Monne

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=1343116236.8016.24.camel@dagon.hellion.org.uk \
    --to=ian.campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=roger.pau@citrix.com \
    --cc=stefano.stabellini@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 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).