Re: IOMMU and graphics cards

Joerg Roedel
2009-05-07T10:02:01Z

On Thu, May 07, 2009 at 04:47:14PM +0900, FUJITA Tomonori wrote:
> On Tue, 28 Apr 2009 18:04:48 +0200
> Joerg Roedel <joerg.roedel@amd.com> wrote:
> >
> > Yes, it is in effect for other devices. But since its a security feature
> > it only makes sense if it covers all devices.
>
> For me, IOMMUs are not about security but accessing all memory space
> (there are still lots of devices that are not capable of 64-bit DMA)
> but I agree that this workaround is bad.

Yeah true. Another major reason for having an IOMMU is to enlarge the
physical address range devices can access.

> Do you meant that AMD IOMMU code use the bitmap each device to manage
> address space so enlarging the DMA address space wastes memory?

Its not only the bitmap. There are also the page tables that would waste
memory if the aperture in the AMD IOMMU driver is enlarged to, say, 4GB.
Most devices don't need such a large amount of DMA address space. As I
found out VT-d does not have this problem because they implemented
another allocator which can cover all possible memory.
For the AMD IOMMU I currently implement a kind of a dynamically growing
bitmap allocator to fix this problem.

> > But unless this problem isn't solved the
> > drivers won't be fixed, I guess.
> > I guess the DRM code in the kernel may have the same problem with IOMMU
> > enabled?
>
> Looks like the DRM code uses the DMA API.

The proprietary drivers make problems so far. For the ATI one I am in
contact with the developers to try to fix it. But I can't do anything
about the other proprietary driver I am aware of :-(

Joerg

--
| Advanced Micro Devices GmbH
Operating | Karl-Hammerschmidt-Str. 34, 85609 Dornach bei München
System |
Research | Geschäftsführer: Thomas M. McCoy, Giuliano Meroni
Center | Sitz: Dornach, Gemeinde Aschheim, Landkreis München
| Registergericht München, HRB Nr. 43632