From: mark gross <mgross@linux.intel.com>
Date: Tue, 12 Feb 2008 07:54:48 -0800
Yes, this is a good idea especially for networking.
For transmit on 10GB links the IOMMU setup is near the top
of the profiles.
What a driver could do is determine the maximum number of
IOMMU pages it could need to map one maximally sized packet.
So then it allocates enough space for all such entries in
it's TX ring.
This eliminates the range allocation from the transmit path.
All that's left is "remap DMA range X to scatterlist Y"
And yes it would be nice to have dma_map_skb() type interfaces
so that we don't walk into the IOMMU code N times per packet.
--