Re: ZONE_DMA

Christoph Lameter
2006-09-21T15:58:44Z

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

> > ZONE_DMA is only used as ZONE_NORMAL if the architecture does not need
> > ZONE_NORMAL because all of memory is reachable via DMA.
>
> That's still inconsistent because it doesn't say DMA for *which*
> device.

Thats the way ZONE_DMA works right now and AFAIK the only way forward is
to make it optional and then introduce another way of allocating memory
for a device. The migrate away from it. The first step is to allow people
who do not need ZONE_DMA to opt out.

> > That wont work because many architectures use different limits. Maybe you
> > should once in a while have a look at the sources.
>
> I'm perfectly well aware that it's inconsistent, that's my whole point.
> However, by some chance of history, it's sort of vaguely working. I
> think it's dangerous to mess with it rather than fixing it properly.

I think you are spreading FUD. The existing scheme has been working for a
long time. Come up with something concrete. I am not
changing the definition of ZONE_DMA.

> AFAICS, the correct way to do this is have the requestor pass a memory
> bound into the allocator, and have the arch figure out which zones
> are applicable.

Exactly. But you cannot do that with ZONE_DMA __GFP_DMA. We likely need a
new page allocator API for that.

> > Actually the desaster is cleaned up by this patch. A couple of architectures
> > that were wrongly using ZONE_DMA now use ZONE_NORMAL.
>
> Odd that the PPC64 maintainers didn't seem to know about this.
> Perhaps it might be a good idea to talk to them before doing this?

Maybe they have not been reading linux-arch? It was discussed among arch
maintainers and 4 arches have switched off ZONE_DMA for good.