road blocks for using dma-iommu on more than arm64

Robin Murphy robin.murphy at arm.com
Mon Oct 2 14:56:14 UTC 2017


On 02/10/17 15:50, Christoph Hellwig wrote:
> On Mon, Oct 02, 2017 at 03:47:06PM +0100, Robin Murphy wrote:
>> dma-iommu does require that the IOMMU driver allows iommu_{un,}map() to
>> be called in atomic context, but last time I looked I think it was only
>> the AMD driver that needs attention there. The main other concern, for
>> x86 at least, was the performance overhead of the extra level of API
>> abstraction and indirection. However, dma-iommu is now on a par with all
>> the IOVA optimisations, and once we've got the new IOMMU API TLB
>> maintenance calls implemented and hooked up, the difference will
>> hopefully be small enough to make the conversion viable.
> 
> Thanks, that's good news.
> 
>> It's been on my to-do list for ages to convert 32-bit ARM over to
>> dma-iommu as well - some of the blockers like DMA configuration order
>> have now been resolved, but there are still some awkward dependencies
>> between IOMMU and DRM drivers that I need to get a handle on.
> 
> Talking about arm32 - do you remember why it uses it's own dmabounce
> subsystem instead of swiotlb?

IIRC, dmabounce has to stay because it handles non-contiguous DMA masks,
thanks to a StrongARM hardware erratum where the DMA controller could
only access every other megabyte of memory (or something like that).

Robin.


More information about the iommu mailing list