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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html