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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux