Re: ZONE_DMA (was: Re: 2.6.19 -mm merge plans)

Christoph Lameter
2006-09-21T00:32:06Z

On Wed, 20 Sep 2006, Andrew Morton wrote:

> > Would it not make sense to define what ZONE_DMA actually means
> > consistently before trying to change it? The current mess across
> > different architectures seems like a disaster area to me.
> >
> > What DOES requesting ZONE_DMA from a driver actually mean?

ZONE_DMA is a memory area that is needed by an arch for devices that
cannot do DMA to all of memory. The high boundary is set by
MAX_DMA_ADDRESS.

> My concern about these patches is that they'll only be useful for
> self-compiled kernels, because distros will be forced to enable ZONE_DMA
> for evermore anyway.

We already have 4 arches now that do not need ZONE_DMA at all.

ZONE_DMA does not have a bright future with IOMMUs and other things
around. None of my system uses ZONE_DMA and I have a variety of them.

And yes if we do not have this facility in the kernel then distros cannot
pick it up. At least on IA64 I know that hardware from the major vendors
has not been needing ZONE_DMA for a while now.

Also ZONE_DMA is a very bad concept. Multiple drivers may have different
address requirements. What we need is some way for a driver to tell the
kernel what the required range of addresses is. If a device is only
capable of handling 30 valid address bits then we may have to use
ZONE_DMA and only allow the use of the lower 16MB. It would be better to
develop a different mechanism.