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(-)