From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: [PATCH 0/5] vfio/quirks: ioeventfd support Date: Wed, 28 Feb 2018 13:45:06 -0700 Message-ID: <20180228201837.26629.3346.stgit@gimli.home> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Cc: eric.auger@redhat.com, alex.williamson@redhat.com, peterx@redhat.com, kvm@vger.kernel.org To: qemu-devel@nongnu.org Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel2=m.gmane.org@nongnu.org Sender: "Qemu-devel" List-Id: kvm.vger.kernel.org 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(-)