Re: [PATCH 0/8] Optional ZONE_DMA V1

Jack Steiner
2006-09-12T13:34:57Z

On Mon, Sep 11, 2006 at 03:27:29PM -0700, Christoph Lameter wrote:
> Optional ZONE_DMA
>
> This patch follows up on the earlier work in Andrew's tree to reduce
> the number of zones. The patches allow to go to a minimum of 2 zones.
> This one allows also to make ZONE_DMA optional and therefore the
> number of zones can be reduced to one.
>
> ZONE_DMA is usually used for ISA DMA devices. Typically modern hardware
> does not have any of these anymore. So we frequently do not need
> the zone anymore. The presence of an additional zone unnecessarily
> complicates VM operations. It must be scanned and balancing logic
> must operate in it etc etc. If one has a 1-1 correspondence between
> zones and nodes in a NUMA system then various other optimizations
> become possible.
>
> Many systems today (especially 64 bit but also 32 bit machines with less
> than 4G of memory) can therefore operate just fine with a single zone.
> With a single zone various loops can be optimized away by the
> compiler. Many system currently do not place anything in ZONE_DMA. On
> most of my systems ZONE_DMA is completely empty. Why constantly look
> at an empty zone in /proc/zoneinfo and empty slab in /proc/slabinfo?
> Non i386 also frequently have no need for ZONE_DMA and zones stay
> empty.
>
I'm missing something here. On Altix, currently ALL of the memory is reported
as being in the DMA zone:

% cat /proc/budd*
Node 0, zone DMA 3015 116 4 1 ...
Node 1, zone DMA 4243 355 15 3 ...
Node 2, zone DMA 4384 113 6 4 ...

% cat /proc/zoneinfo
Node 0, zone DMA
pages free 5868
...

The DMA slabs are empty, though.

I assume your patch will switch Altix memory to a different zone, but what happens when
drivers specify GFP_DMA.

-- jack