Messages in this thread | | | From | Alex Williamson <> | Subject | [PATCH 0/4] iommu: iommu_ops group interface | Date | Fri, 21 Oct 2011 13:55:58 -0600 |
| |
IOMMUs can't always distiguish transactions from each individual device in a system. Sometimes this is by design (such as powerpc partitionable endpoints), other times by topology (PCIe-to-PCI bridges masking downstream devices). We call these sets of indistinguishable devices "groups".
In order to support secure userspace drivers, like vfio, we need an interface to expose the device-to-group relationship. This allows us to create policies ensuring that userspace controls all of the devices in the group before allowing individual device access.
This series implements the iommu_ops API interface and sysfs interface for exposing groups to userspace. This also includes the intel-iommu and amd-iommu backend implementations. It's intended that the vfio driver will make use of these interfaces to support generic device assignment for virtual machines. See git://github.com/awilliam/linux-vfio.git (vfio-ng) for a working example using this interface.
Patches based on Joerg's next branch to support per-bus iommu_ops.
Note the amd-iommu is untested, I'm still working on setting up an AMD-Vi capable system. Thanks,
Alex
---
Alex Williamson (4): iommu: Add option to group multi-function devices amd-iommu: Implement iommu_device_group intel-iommu: Implement iommu_device_group iommu: Add iommu_device_group callback and iommu_group sysfs entry
Documentation/kernel-parameters.txt | 4 ++ arch/ia64/include/asm/iommu.h | 2 + arch/ia64/kernel/pci-dma.c | 1 + arch/x86/include/asm/iommu.h | 1 + arch/x86/kernel/pci-dma.c | 11 ++++++ drivers/iommu/amd_iommu.c | 21 ++++++++++++ drivers/iommu/intel-iommu.c | 47 +++++++++++++++++++++++++++ drivers/iommu/iommu.c | 61 +++++++++++++++++++++++++++++++++++ include/linux/iommu.h | 7 ++++ 9 files changed, 154 insertions(+), 1 deletions(-)
| |