lkml.org 
[lkml]   [2011]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 0/4] iommu: iommu_ops group interface
Date
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(-)


\
 
 \ /
  Last update: 2011-10-21 21:59    [W:0.171 / U:0.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site