Re: (reposting) how to get DMA'able memory within 4GB on 64-bit m achi ne

David S. Miller
2001-06-28T22:49:02Z

Ben LaHaise writes:
> > How do you represent this with the undocumented API ia64 has decided
> > to use? You can't convey this information to the driver, because the
> > driver may say "I don't care if it's slower, I want the large
> > addressing because otherwise I'd consume or overflow the IOMMU
> > resources". How do you say "SAC is preferred for performance" with
> > ia64's API? You can't.
>
> How is SAC useful on ia64? All the machines are going to be shipped with
> more than 4GB of RAM, and they need an IOMMU.

That is all that some devices are able to do, especially sound
cards, some of which even have < 32-bit addressing limitations.
ia64 supports such devices just fine, I know it does, else you
couldn't stick an eepro100 into an ia64 box running Linux :-)

There is a software IOMMU implemented in the ia64 port, and it
handles such SAC situations today.

> Like it or not, 64 bit DMA is here, NOW. Not during the 2.6, but during
> 2.4. We can either start fixing the ia64 APIs and replacing them with
> something that's "Right" or we can continue with ad hoc solutions.

It will be fixed in 2.5.x and backported perhaps to 2.4.x, 2.4.x is
not a place for API experimentation.

Later,
David S. Miller
davem@redhat.com