[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxl: a domain can be dying but not shutdown
On Wed, 2014-10-22 at 15:08 +0100, Andrew Cooper wrote: > On 22/10/14 14:52, David Scott wrote: > > The shutdown code is only present if the domain is shutdown. > > If we attempt to extract it from the flags from a dying but not > > shutdown domain then we get values like '255' which is not a > > valid LIBXL_SHUTDOWN_REASON_. We should use LIBXL_SHUTDOWN_UNKNOWN > > in this case. > > > > Signed-off-by: David Scott <dave.scott@xxxxxxxxxx> > > > > --- > > > > This can be tested by running 2 domUs, and having one map pages from > > the other. I used a vchan connection, so I had a vchan_server granting > > pages and a vchan_client mapping them. I made sure the client is > > never going to unmap the pages (I used 'sleep' in a Mirage kernel but > > 'xl pause' from outside would probably also work) and then I > > 'xl destroyed' the server. The server domain ends up stuck in the dying > > state because the client still has a page mapped. The server domain > > is not shutdown. > > > > According to 'xl list': > > > > djs@st20:~/djs55/list$ sudo xl list > > Name ID Mem VCPUs State > > Time(s) > > Domain-0 0 5278 6 r----- > > 10971.2 > > fedora 12 2048 1 -b---- > > 5470.0 > > (null) 21 0 1 -bp--d > > 25.1 > > vchan_client 22 256 1 -b---- > > 0.0 > > > > and according to my test program which calls libxl_list_domain: > > > > domain 0 shutdown = 0 dying = 0 shutdown_reason = -1 > > domain 12 shutdown = 0 dying = 0 shutdown_reason = -1 > > domain 21 shutdown = 0 dying = 1 shutdown_reason = 255 > > domain 22 shutdown = 0 dying = 0 shutdown_reason = -1 > > > > I believe this also manifests transiently during a normal 'xl destroy'. > > > > Cheers, > > Dave > > --- > > Hmm. Xen unconditionally sets the shutdown code in info->flags when > querying for dominfo. > > d->shutdown_code defaults to -1 (which explains the 255, given the > mask), but only becomes valid once d->is_shutting_down gets set. > > This equates to XEN_DOMINF_shutdown lower in the flags field, which is > translated to xlinfo->shutdown just ahead of the context below. > > It is explicitly not valid for a dying domain, as a dying domain can be > dying for many reasons, few of which include a valid shutdown code. I'm afraid I can't tell whether this constitutes an implicit ack or a nack of this patch. > Therefore, other bits of libxl.h could do with correcting, given the > buggy changeset 4d70c9c5 Do you know of any specific locations? I don't see any relevant uses of the word "shutdown" or "reason" in libxl.h. Did you instead mean this from libxl_types.idl: # Valid iff (shutdown||dying). # # Otherwise set to a value guaranteed not to clash with any valid # LIBXL_SHUTDOWN_REASON_* constant. ("shutdown_reason", libxl_shutdown_reason), ? Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |