Re: [PATCH 3/5] iommu: Limit iommu_attach/detach_device to devices with their own group

Joerg Roedel
2015-02-03T12:59:15Z

On Tue, Feb 03, 2015 at 01:25:07PM +0100, Thierry Reding wrote:
> Sorry for my ignorance, but I don't understand what IOMMU groups are
> supposed to be or how to make use of them. It seems like a common idiom
> is to simply allocate a new group and add a device to it in the IOMMU's
> ->add_device() callback, but I fail to see the reason for that.
>
> Can anybody point me to documentation about this? I've looked and I did
> not find anything.

An iommu group is a set of devices that the iommu hardware can isolate
from other devices. So devices in one group can't be isolated from each
other and have to share the same iommu page table.

This happens for example on legac 32 bit PCI buses. All devices on such
a bus use the request-id of the PCIe-PCI bridge, so they can't be
isolated from each other from the IOMMU and have to be in one iommu
group.

Joerg