Messages in this thread | | | From | Jes Sorensen <> | Date | 29 Jun 2001 00:55:47 +0200 |
| |
>>>>> "David" == David S Miller <davem@redhat.com> writes:
David> There are so many issues with 64-bit DAC support, that many of David> the people whining in this thread have not even considered, and David> these very issues will be what shapes the eventual API to use.
David> For example. I have IOMMU's on my machine, there is no real David> need to use 64-bit DAC in %99 of cases. In fact, DAC transfers David> run slower because they cannot use the DMA caching in the PCI David> controller.
David> How do you represent this with the undocumented API ia64 has David> decided to use? You can't convey this information to the David> driver, because the driver may say "I don't care if it's David> slower, I want the large addressing because otherwise I'd David> consume or overflow the IOMMU resources". How do you say "SAC David> is preferred for performance" with ia64's API? You can't.
Thats easy, you use the IOMMU in pci_alloc_consistent() and friends and return a 32bit address in that case. Most cards will simply issue a SAC cycle if the upper 32 bits in the DMA address are zero, the ones that don't are broken.
This way you automatically get support for the situation Ben mentioned as well, when doing large allocs and the IOMMU is full you return a full 64 bit address.
Jes - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |