Hi, Firstly, sorry for the extreme lateness of this reply!
I’ve re-read the thread from Nov 2013: (2013!) http://lists.xen.org/archives/html/xen-devel/2013-11/msg01176.html and found it quite thought-provoking. From the Xapi/Xenopsd point of view, the main feature that we’d like is to be able to ‘unstick’ the system when it appears stuck. When the user gets bored and hits the big red “cancel” button we’d like the particular operation/thread/call to unblock (in a timely fashion, it’s probably ok if this takes 30s?) and for the system to be left in some kind of manageable state. I think it’s ok for Xapi/Xenopsd to destroy any half-built VMs via fresh libxl calls afterwards, so libxl doesn’t need to tidy everything itself automatically. I think cancellation could be quite hard to test. One thing we could do is add a counter and increment it every time we pass a point where cancellation is possible. In some libxl debug mode we could configure it to simulate a cancellation event when the counter reaches a specific value. A test harness could then try to walk through all the different cancellation possibilities and check the system is in some sensible state afterwards. We were thinking about running some number of libxl-based stateless worker processes which would also allow us to kill them with various signals if we really needed to. I guess in the event that libxl cancel didn’t work for whatever reason, we could fall back to this rather cruder approach (although this should be only in extreme circumstances). Anyway, sorry again for the lateness! Cheers, Dave _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel