Thread (19 messages) flat view 19 messages, 7 authors, 2006-12-07

Re: network devices don't handle pci_dma_mapping_error()'s

From: Amit S. Kale <hidden>
Date: 2006-12-07 06:18:00

On Thursday 07 December 2006 01:03, Muli Ben-Yehuda wrote:
On Wed, Dec 06, 2006 at 10:16:44AM -0800, Stephen Hemminger wrote:
quoted
I think it is really only an issue for drivers that turn on HIGH_DMA
and have limited mask values. The majority of drivers either only
handle 32 bit (!HIGH_DMA) or do full 64 bit mapping. I don't know
the details of how we manage IOMMU, but doesn't mapping always work
for those drivers.
It's up to an IOMMU (DMA-API) implementation to define what
constitutes a mapping error, e.g., Calgary and GART on x86-64 will
return bad_dma_address from the mapping functions when they run out of
entries in the IO space, which can happen regardless of the mask.
We've seen IOMMU space running out on ia64 systems. Would this be the case 
with other 10G driver requiring IOMMU remapping? We need frequent map-unmap 
at near 10G throughput.

On the x86_64 boxes that don't feature iommu functionality (because the 
motherboard disables it or because Linux can't handle it) Linux bounce buffer 
framework automatically comes into picture. Could we have the same framework 
take over when IOMMU space is over? I don't think this is possible with 
present code, though. We probably can have fallback_dma_ops in addition to 
dma_ops.

-Amit
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help