The meat here, including a description of the bug, is in:
libxl: event: Fix hang when mixing blocking and eventy calls
Re v1 I wrote:
I suggest we try to convince ourselves of its correctness
via a second round of code review.
I put this into practice by writing an informal proof of correctness.
This found a bug, the fixing of which was not entirely trivial.
George tells me he tested v1 of this series. As with v1, I have
compiled this v2 but not executed it.
Ian Jackson (10):
libxl: event: Rename poller.fds_changed to .fds_deregistered
libxl: event: Rename ctx.pollers_fd_changed to .pollers_active
libxl: event: Introduce CTX_UNLOCK_EGC_FREE
libxl: event: Make LIBXL__EVENT_DISASTER take a gc, not an egc
libxl: event: Make libxl__poller_wakeup take a gc, not an egc
libxl: event: Fix hang when mixing blocking and eventy calls
libxl: event: poller pipe optimisation
libxl: event: Break out baton_wake
libxl: event: Fix possible hang with libxl_osevent_beforepoll
libxl: event: Move poller pipe emptying to the end of afterpoll
tools/libxl/libxl.c | 4 +-
tools/libxl/libxl_aoutils.c | 2 +-
tools/libxl/libxl_disk.c | 4 +-
tools/libxl/libxl_domain.c | 2 +-
tools/libxl/libxl_event.c | 286 +++++++++++++++++++++++++++++++++++--------
tools/libxl/libxl_fork.c | 17 ++-
tools/libxl/libxl_internal.h | 54 +++++---
7 files changed, 290 insertions(+), 79 deletions(-)
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel