[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Cancelling asynchronous operations in libxl
Euan Harris writes ("Re: Cancelling asynchronous operations in libxl"): > On Tue, Jan 20, 2015 at 04:38:24PM +0000, Ian Jackson wrote: > > * Is an API along these lines going to meet your needs ? > > The API you propose for libxl_ao_cancel, as described in the comment in > libxl.h, looks reasonable to us. The comment for ERROR_NOTIMPLEMENTED > is a bit confusing: under what circumstances might a task actually be > cancelled although libxl_ao_cancel returned ERROR_NOTIMPLEMENTED? A single operation may go through phases during which cancellation is effective, and phases during which it is not very effective because it hasn't been properly hooked up. If libxl_ao_cancel is called during the latter, it will return ERROR_NOTIMPLEMENTED but the operation will still be marked as wanting-cancellation, so if it enters a phase where cancellation is effective, it will stop at that point. To put it another way, what libxl_ao_cancel does is: - find the ao in question, hopefully - make a note in the ao that it ought to be cancelled - look for something internal that has registered a cancellation hook - if such a hook was found, call it and return success; otherwise return ERROR_NOTIMPLEMENTED. So ERROR_NOTIMPLEMENTED is more of a hint. If you prefer, it would be possible to make libxl_ao_cancel _not_ make a note that the operation ought to be cancelled, in the case where it's returning ERROR_NOTIMPLEMENTED. Then the libxl_ao_cancel would be guaranteed to have no effect. But, if we do that, it won't be possible to mark a currently-running-and-not-promptly-cancellable but maybe-shortly-actually-cancellable operation as to be cancelled. Perhaps if this is confusing the better answer is simply to return a different error code instead of ERROR_NOTIMPLEMENTED, ERROR_CANCELLATION_DIFFICULT > > * Can you help me test it ? Trying to test this in xl is going to be > > awkward and involve a lot of extraneous and very complicated signal > > handling; and AFAIAA libvirt doesn't have any cancellation > > facility. > > Yes, of course. However, wouldn't it also be useful for xl to gain > the ability to cancel long-running operations by handling SIGINT? As I say, making xl do something with signals is a substantial piece of work in itself. > > * Any further comments (eg, re timescales etc). > > None that we can think of at the moment. Thanks, Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |