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

Reply via email to