[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 0 of 3] xl and hotplug: Introduce and use shutdown and reboot xm compatibility options



Tuesday, October 2, 2012, 4:02:18 PM, you wrote:

> On Thu, 2012-09-27 at 21:11 +0100, Sander Eikelenboom wrote:
>> Tuesday, September 25, 2012, 5:29:09 PM, you wrote:
>> 
>> > On Tue, 2012-09-25 at 16:11 +0100, Sander Eikelenboom wrote:
>> 
>> >> The only relative simple implementation i thought of was direct
>> >> shutting down all, and when the -w parameter was set, just loop and
>> >> wait on events until the only running domain is domain-0.
>> >> Although this exactly does what has to be done, it somehow sounds a
>> >> bit dirty.
>> 
>> > I think you can allocate an array of libxl_evenable_domain_death*, of
>> > nr_doms in size and then as you shutdown each domain call
>> > libxl_evenable_domain_death for it too.
>> 
>> > Then you loop waiting for destroy events, calling
>> > libxl_evdisable_domain_death as each domain dies, while counting back
>> > from nr_doms until 0. When it reaches 0 everything you asked for has
>> > been shutdown.
>> 
>> > Or something like that, I've not actually implemented it ;-)
>> 
>> > Ian.
>> 
>> It's time to call defeat, without proper C skills it seems a bit too
>> hard to figure it out.

> That's ok, I'll add it to my TODO to pickup where you left off (unless
> someone beats me to it).

Thx !
Would be nice for 4.2.1 since the xendomains stop script doesn't function 
properly with xl as toolstack, and not shutting down the domains but just pulls 
the plug.
Would it be helpful to you, to send the doc patches as well ?


> Thanks for taking it this far! FWIW you seemed to be pretty close.

>> Can't seem to get the hang of how to keep a reference to
>> libxl_evgen_domain_death and use it to check if the domid of the event
>> is the same as that from a domain we are waiting to shutdown.
>> The rest of the code doesn't give me much pointers since all commands
>> seem to operate on a single domid at once.
>> 
>> The concoction below leads to:
>> xl_cmdimpl.c: In function Ãshutdown_domainÃ:
>> xl_cmdimpl.c:2766: error: dereferencing pointer to incomplete type

> In case you are interested this is because the libxl_evgen_domain_death
> type is opaque to users of libxl so constructs like
> domains_wait_shutdown[i]->domid are not possible.

> The answer is to use the 3rd argument to libxl_evenable_domain_death
> (the one of type libxl_ev_user) to pass a "closure", this value is
> returned in the event's "for_user" field. The application can use this
> to store data specific to this particular event -- in this case it would
> probably be sufficient to just pass the domid here but in principal one
> could pass a pointer to any datastructure.

Thanks for the explanation, although i still don't see how to actually change 
the code the right way.


> Thanks again,
> Ian.






_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.