[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v11 01/17] libxl: fix stubdom console destruction
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@xxxxxxxxxxxxx> > Reported-by: Ian Campbell <ian.campbell@xxxxxxxxxxxxx> > Signed-off-by: Roger Pau Monne <roger.pau@xxxxxxxxxx> > --- > 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. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |