The meat here, including a description of the bug, is in:
libxl: event: Fix hang when mixing blocking and eventy calls
I have compiled this but not tested it. We do not have a good test
suite for this event stuff. (And races etc are hard to test.)
George, can you check to see whether it fixes the issue you saw ?
If so then I suggest we try to convince ourselves of its correctness
via a second round of code review. I will certainly want to read it
all again after the weekend, since then I will hopefully have
forgotten enough about this to make that a worthwhile exercise.
Ian Jackson (8):
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: 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_event.c | 126 ++++++++++++++++++++++++++++++-------------
tools/libxl/libxl_fork.c | 6 +--
tools/libxl/libxl_internal.h | 42 +++++++++++----
4 files changed, 127 insertions(+), 51 deletions(-)
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel