[PATCH 0/5] vfio/quirks: ioeventfd support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is the QEMU counterpart to https://lkml.org/lkml/2018/2/28/1222

As described in the third patch, we have a use case for taking
advantage of existing KVM ioeventfd support for accelerating the
MSI-ACK behavior of NVIDIA GPUs.  This series adds generic
infrastructure within vfio quirks for making use of ioeventfds and
specifically enables it for this purpose.  The first three patches
provide a performance improvement on their own and do not depend on
the additional acceleration added by the remainder of the patches to
be worthwhile.  The Linux header update in patch 4 is not intended
to be a full refresh, the kernel API is not yet upstream, this is for
testing and review purposes.  The intention would be to commit the
series in separate chunks, 1-3 once we have review consensus, 4-5 as
RFC until the kernel API is upstream.

RFC->v1:
 * Cap the number of dynamically added ioeventfds to 10 such that
   pathological driver behavior cannot consume too many file handles.
 * Added a reset hook and cleanup mechanism to drop dynamically added
   ioeventfds on device reset.
 * Additional comments and removed info_report.
 * Folded ioeventfd infrastructure patch into usage patch, fail to
   stand on its own without setup, which requires consumers.

Thanks,

Alex

---

Alex Williamson (5):
      vfio/quirks: Add common quirk alloc helper
      vfio/quirks: Add quirk reset callback
      vfio/quirks: ioeventfd quirk acceleration
      vfio: Update linux header
      vfio/quirks: Enable ioeventfd quirks to be handled by vfio directly


 hw/vfio/pci-quirks.c       |  255 +++++++++++++++++++++++++++++++++++++++-----
 hw/vfio/pci.c              |    2 
 hw/vfio/pci.h              |   17 +++
 linux-headers/linux/vfio.h |   27 +++++
 4 files changed, 272 insertions(+), 29 deletions(-)



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux