From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: [RFC PATCH v2 00/29] libxl: Cancelling asynchronous operations Date: Tue, 10 Feb 2015 20:09:47 +0000 Message-ID: <1423599016-32639-1-git-send-email-ian.jackson@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xensource.com Cc: Euan Harris List-Id: xen-devel@lists.xenproject.org This is v2 of my work-in-progress series to support cancellation of long-running libxl operations. There are many improvements since v1, but the basic structure remains the same and the external API remains unchanged. I have rebased this onto current staging. I have compiled it but NOT EXECUTED IT AT ALL. Euan, I thought it would be useful to give you something you could start to work on building against. I wouldn't recommend testing it yet until I've at least smoke tested it to see that things still work if you don't cancel them. Here's a list of the patches: 01/29 libxl: Further fix exit paths from libxl_device_events_handler 02/29 libxl: Comment cleanups 03/29 libxl: suspend: switch_logdirty_done takes rc 04/29 libxl: suspend: common suspend callbacks take rc 05/29 libxl: suspend: Return correct error from callbacks 06/29 libxl: Use libxl__xswait* in libxl__ao_device 07/29 libxl: xswait/devstate: Move xswait to before devstate 08/29 libxl: devstate: Use libxl__xswait* 09/29 libxl: New error codes CANCELLED etc. 10/29 libxl: events: Make timeout and async exec setup take an ao, not a gc 11/29 libxl: events: Make libxl__async_exec_* pass caller an rc 12/29 libxl: events: Permit timeouts to signal cancellation 13/29 libxl: domain create: Do not destroy on cancellation 14/29 libxl: ao: Record ultimate parent of a nested ao 15/29 libxl: ao: Count the nested progeny of an ao 16/29 libxl: ao: Provide manip_refcnt 17/29 libxl: cancellation: Provide public ao cancellation API 18/29 libxl: cancellation: Provide explicit internal cancel check API 19/29 libxl: cancellation: Make timeouts cancellable 20/29 libxl: cancellation: Note that driver domain task cannot be cancelled 21/29 libxl: cancellation: Make spawns cancellable 22/29 libxl: Introduce DOMAIN_DESTROYED error code 23/29 libxl: cancellation: Support cancellation where we spot domain death 24/29 libxl: Introduce FILLZERO 25/29 libxl: cancellation: Preparations for save/restore cancellation 26/29 libxl: cancellation: Handle SIGTERM in save/restore helper 27/29 libxl: cancellation: Cancel libxc save/restore 28/29 libxl: ao: datacopier callback gets an rc 29/29 libxl: cancellation: Make datacopiers cancellable