Trying to move beyond talking about how VFIO should work to re-writing the code. This is pre-alpha, known broken, will probably crash your system but it illustrates some of how I see groups, devices, and iommus interacting. This is just the framework, no code to actually support user space drivers or device assignment yet. The iommu portions are still using the "FIXME" PCI specific hooks. Once Joerg gets some buy-in on his bus specific iommu patches, we can move to that. The group management is more complicated than I'd like and you can get groups into a bad state by killing the test program with devices/iommus open. The locking is overly simplistic. But, it's a start. Please make constructive comments and suggestions. Patches based on v3.0. Thanks, Alex --- Alex Williamson (5): VFIO: Simple test tool VFIO: Add PCI device support VFIO: Base framework for new VFIO driver intel-iommu: Implement iommu_device_group iommu: Add iommu_device_group callback and iommu_group sysfs entry drivers/Kconfig | 2 drivers/Makefile | 1 drivers/base/iommu.c | 51 ++ drivers/pci/intel-iommu.c | 52 ++ drivers/vfio/Kconfig | 12 + drivers/vfio/Makefile | 4 drivers/vfio/vfio_device.c | 109 +++++ drivers/vfio/vfio_iommu.c | 81 ++++ drivers/vfio/vfio_main.c | 889 ++++++++++++++++++++++++++++++++++++++++ drivers/vfio/vfio_pci.c | 124 ++++++ drivers/vfio/vfio_private.h | 87 ++++ include/linux/iommu.h | 6 tools/testing/vfio/Makefile | 4 tools/testing/vfio/vfio_test.c | 406 ++++++++++++++++++ 14 files changed, 1828 insertions(+), 0 deletions(-) create mode 100644 drivers/vfio/Kconfig create mode 100644 drivers/vfio/Makefile create mode 100644 drivers/vfio/vfio_device.c create mode 100644 drivers/vfio/vfio_iommu.c create mode 100644 drivers/vfio/vfio_main.c create mode 100644 drivers/vfio/vfio_pci.c create mode 100644 drivers/vfio/vfio_private.h create mode 100644 tools/testing/vfio/Makefile create mode 100644 tools/testing/vfio/vfio_test.c -- 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