This series implements the core VFIO infrastructure, documentation, an IOMMU backend suitable for x86 usage, and a PCI device driver. These patches are based on the previous v2 IOMMU Groups + VFIO patches and are dependent on the previously sent out PCI and IOMMU groups series found here: http://marc.info/?l=linux-kernel&m=133835363021384 http://marc.info/?l=linux-kernel&m=133835480021716 As noted in previous postings and the included documentation, VFIO provides secure, IOMMU protected, userspace access to I/O devices for use by things like PCI device assignment to virtual machines in Qemu. This driver is meant to replace existing KVM device assignment and hopefully take over much of what UIO does today. I'm looking for suggestions not only on the code, but on the best way to get this upstream. If we can get some initial blessing for this driver I'd be happy to host a next branch for it or submit it as a staging driver. I think Bjorn and Joerg would probably appreciate and kind of nod that this driver has legs in order to include the PCI and IOMMU backend support. Alexey Kardashevskiy has already posted an initial draft of POWER support for VFIO giving some validation as a cross architecture solution. These patches, as well as the PCI support patches and IOMMU group infrastructure can be found in git here: git://github.com/awilliam/linux-vfio.git (iommu-group-vfio-next-20120529) A qemu tree including a vfio-pci driver capable of assigning PCI devices to Qemu guests can be found here: git://github.com/awilliam/qemu-vfio.git (iommu-group-vfio) Thanks, Alex --- Alex Williamson (4): vfio: Add PCI device driver vfio: Type1 IOMMU implementation vfio: Add documentation vfio: VFIO core Documentation/ioctl/ioctl-number.txt | 1 Documentation/vfio.txt | 315 +++++++ MAINTAINERS | 8 drivers/Kconfig | 2 drivers/Makefile | 1 drivers/vfio/Kconfig | 16 drivers/vfio/Makefile | 3 drivers/vfio/pci/Kconfig | 8 drivers/vfio/pci/Makefile | 4 drivers/vfio/pci/vfio_pci.c | 559 ++++++++++++ drivers/vfio/pci/vfio_pci_config.c | 1528 ++++++++++++++++++++++++++++++++++ drivers/vfio/pci/vfio_pci_intrs.c | 725 ++++++++++++++++ drivers/vfio/pci/vfio_pci_private.h | 91 ++ drivers/vfio/pci/vfio_pci_rdwr.c | 269 ++++++ drivers/vfio/vfio.c | 1422 ++++++++++++++++++++++++++++++++ drivers/vfio/vfio_iommu_type1.c | 754 +++++++++++++++++ include/linux/vfio.h | 445 ++++++++++ 17 files changed, 6151 insertions(+) create mode 100644 Documentation/vfio.txt create mode 100644 drivers/vfio/Kconfig create mode 100644 drivers/vfio/Makefile create mode 100644 drivers/vfio/pci/Kconfig create mode 100644 drivers/vfio/pci/Makefile create mode 100644 drivers/vfio/pci/vfio_pci.c create mode 100644 drivers/vfio/pci/vfio_pci_config.c create mode 100644 drivers/vfio/pci/vfio_pci_intrs.c create mode 100644 drivers/vfio/pci/vfio_pci_private.h create mode 100644 drivers/vfio/pci/vfio_pci_rdwr.c create mode 100644 drivers/vfio/vfio.c create mode 100644 drivers/vfio/vfio_iommu_type1.c create mode 100644 include/linux/vfio.h -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html