This is part 1 of a three-part series that expands usage of EventNotifier in QEMU (including AIO and the main loop). I started working on this when playing with the threaded block layer; the part of that work that I hope will be in 1.2 is generalizing posix-aio-compat.c to be a generic portable thread pool + porting AIO to Win32 (part 2). On top of this, discard can be easily made asynchronous (part 3), which is a prerequisite for enabling it.
This first part does the necessary changes for porting EventNotifier to Win32. The Win32 version will not have event_notifier_get_fd, and thus I want to remove all calls in portable code. Instead, all functions used in portable code after this series take an EventNotifier; KVM-specific implementations retrieve the file descriptor internally (these calls are in hw/ivshmem.c, hw/vhost.c, kvm-all.c). Patches 1 to 6 cover ivshmem and the memory API, first adding the required EventNotifier APIs and then using them. Patches 7 to 9 do the same with KVM ioeventfd and irqfd, refactoring transport-independent code in the process from virtio-pci to virtio (the two steps are a bit hard to separate). Paolo Bonzini (9): event_notifier: add event_notifier_set event_notifier: remove event_notifier_test event_notifier: add event_notifier_init_fd ivshmem: use EventNotifier and memory API ivshmem: wrap ivshmem_del_eventfd loops with transaction memory: pass EventNotifier, not eventfd event_notifier: add event_notifier_set_handler virtio: move common ioeventfd handling out of virtio-pci virtio: move common irqfd handling out of virtio-pci event_notifier.c | 30 ++++++++++++--------- event_notifier.h | 8 ++++-- exec.c | 8 +++--- hw/ivshmem.c | 67 +++++++++++++++++++++++++++-------------------- hw/vhost.c | 4 +-- hw/virtio-pci.c | 77 ++++++++++-------------------------------------------- hw/virtio.c | 46 ++++++++++++++++++++++++++++++++ hw/virtio.h | 3 +++ hw/xen_pt.c | 2 +- kvm-all.c | 29 +++++++++++++++----- kvm-stub.c | 10 +++++++ kvm.h | 2 ++ memory.c | 18 ++++++------- memory.h | 9 ++++--- xen-all.c | 6 +++-- 15 files changed, 186 insertions(+), 133 deletions(-) -- 1.7.10.2 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html