From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: (no subject) Date: Tue, 17 Dec 2013 18:35:14 +0000 Message-ID: <1387305337-15355-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: Shriram Rajagopalan , George Dunlap , Ian Campbell , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org This series removes the usleeps and waiting loops in libxl_dom.c and replaces them with event-callback code. Firstly, some documentation of things I had to reverse-engineer: 01/23 xen: Document XEN_DOMCTL_subscribe 02/23 xen: Document that EVTCHNOP_bind_interdomain signals 03/23 docs: Document event-channel-based suspend protocol 04/23 libxc: Document xenctrl.h event channel calls Arguably these might be 4.4 material (hence the CC to George). We want some additional libxl event facilities: 05/23 libxl: init: Provide a gc later in libxl_ctx_alloc 06/23 libxl: init: libxl__poller_init and _get take gc 07/23 libxl: events: const-correct *_inuse, *_isregistered 08/23 libxl: events: Provide libxl__xswait_* 09/23 libxl: events: Use libxl__xswait_* in spawn code 10/23 libxl: events: Provide libxl__ev_evtchn* We need to clean up some unfortunate code in libxc: 11/23 libxc: suspend: Rename, improve xc_suspend_evtchn_init 12/23 libxc: suspend: Fix suspend event channel locking We do some shuffling around of the libxl suspend control flow: 13/23 libxl: suspend: Async libxl__domain_suspend_callback 14/23 libxl: suspend: Async domain_suspend_callback_common 15/23 libxl: suspend: Reorg domain_suspend_callback_common 16/23 libxl: suspend: New libxl__domain_pvcontrol_xspath 17/23 libxl: suspend: New domain_suspend_pvcontrol_acked No functional change in those five. These changes are broken down just to make the changes reviewable. Finally, we can start to work on the event code, removing the bugs, usleeps and loops one at a time: 18/23 libxl: suspend: domain_suspend_callback_common xs errs 19/23 libxl: suspend: Async xenstore pvcontrol wait 20/23 libxl: suspend: Abolish usleeps in domain suspend wait 21/23 libxl: suspend: Fix suspend wait corner cases 22/23 libxl: suspend: Async evtchn wait 23/23 libxl: suspend: Apply guest timeout in evtchn case I have tested this with a Debian pvops kernel (xenstore pvcontrol suspend signalling) and OpenSUSE 11 (event channel suspend signalling). Shriram: I haven't really touched the Remus-specific code here but this series ought to be suitable for you to base things on, assuming my co-maintainers like the general approach. Thanks, Ian.