Messages in this thread | | | Subject | RE: [PATCH 01/34] AMD IOMMU: add Kconfig entry | Date | Fri, 27 Jun 2008 15:39:31 -0500 | From | "Duran, Leo" <> |
| |
On Fri, Jun 27, 2008 at 12:06 PM, Joerg Roedel wrote
> On Fri, Jun 27, 2008 at 12:59:47PM -0400, Muli Ben-Yehuda wrote: > > On Fri, Jun 27, 2008 at 06:54:30PM +0200, Joerg Roedel wrote: > > > > > True. At least for the case without device isolation I have some > > > optimizations in mind which will minimize the performance > > > tradeoff. I hope to have them ready for 2.6.28 :) > > > > Do you mean the case where you have a single I/O address space which > > is shared by all devices? > > Yes. I think this will be the case used most when IOMMU is used for > virtualization and to handle devices with limited DMA address ranges. > In > this case there is a lot to optimize. >
With the AMD IOMMU there are basically two options with regards to (untranslated) DMA handling: 1) IOMMU will translate using page tables, which can be set on per device-table-entry basis; sharing page tables between devices could be considered a 'resource usage optimization', with the caveat of not being to provide protection for devices sharing the page tables.
2) IOMMU will not translate if the exclusion range has been enabled, and the DMA address falls inside that range. The exclusion range can be enabled for specific devices, or for all devices... Enabling the exclusion range can be considered a 'performance optimization' (no table-walks), with the caveat of not being able to provide protection for devices sharing the exclusion range (BTW, there's a single exclusion address range per IOMMU).
Leo.
| |