[PATCH 0/5] Fixes, non-PCI-2.3 support, EOI enhancements

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

 



Hi Tom,

I've updated some patches I've been working on to v5 and wanted to
see what you think.  I also found a couple minor bugs, fixed in this
series.

The main idea is that since the VFIO interface defines that the INTx
interrupt is disabled when it fires, we should provide an interface
to re-enable it.  We currently have to do a read-modify-write to PCI
config space, requring two ioctls.  I introduce an ioctl to do this
for us.  An important aspect of this is that now we can support
non-PCI-2.3 devices since re-enabling the interrupt is abstracted
(with the same caveat as current KVM device assignment, that they
must get an exclusive interrupt).  The real trick though is that we
can then also create an irqfd-like mechanism to trigger re-enabling
interrupts from and eventfd.  This allows qemu to do all the setup
for connecting interrupts from VFIO into KVM and EOIs from KVM to
VFIO, then lets userspace get completely out of the way.

Hope you like it.  Thanks,

Alex
---

Alex Williamson (5):
      vfio: Add a new ioctl to support EOI via eventfd
      vfio: Add support for non-PCI 2.3 compliant devices
      vfio: Add ioctl to re-enable interrupts
      vfio: Fix requested regions
      vfio: Fix the ROM mask


 drivers/vfio/vfio_intrs.c      |  254 +++++++++++++++++++++++++++++++++++++---
 drivers/vfio/vfio_main.c       |   37 +++++-
 drivers/vfio/vfio_pci_config.c |    2 
 drivers/vfio/vfio_rdwr.c       |    4 -
 include/linux/vfio.h           |   14 ++
 5 files changed, 279 insertions(+), 32 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux