Messages in this thread | | | Date | Tue, 12 Feb 2008 15:46:30 -0800 (PST) | Subject | Re: [PATCH]intel-iommu batched iotlb flushes | From | David Miller <> |
| |
From: mark gross <mgross@linux.intel.com> Date: Tue, 12 Feb 2008 07:54:48 -0800
> Something could be done: > we could enable drivers to have DMA-pools they manage that get mapped > and are re-used. > > I would rather the DMA-pools be tied to PID's that way any bad behavior > would be limited to the address space of the process using the device. > I haven't thought about how hard this would be to do but it would be > nice. I think this could be tricky.
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.
| |