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