Re: ZONE_DMA

Christoph Lameter
2006-09-21T01:10:39Z

On Wed, 20 Sep 2006, Martin J. Bligh wrote:

> Having something that's used in generic code that means random
> things on different arches just seems like a recipe for disaster
> to me.

ZONE_DMA is only used as ZONE_NORMAL if the architecture does not
need ZONE_NORMAL because all of memory is reachable via DMA.

> OK ... but requesting ZONE_DMA means what? DMAable for which device?
> Is it always a floppy disk? on some platforms a PCI card? And how
> is the VM meant to know what the device is capable of anyway?

I already explained that twice to you. I think we all agree that the
situation could be better.

> Having an arch-specific definition of the limit is arbitrary and
> useless, is it not? The limit is imposed by the device and its
> driver, we're not communicating it into any sensible way into the
> VM code, AFAICS. Unless we're pretending we never call it from
> generic code, which seems woefully unlikely to me.

Its bad but its not useless. See how various arches use it.

> Are we redefining ZONE_DMA to always be 16MB limit across all
> architectures? At least that'd be consistent.

That wont work because many architectures use different limits. Maybe you
should once in a while have a look at the sources.

The patchset leaves the semantics of ZONE_DMA as memory beyond
MAX_DMA_ADDRESS as is. Nothing should break. It only allows us to opt out
of this scheme if we do not need it.