Re: [PATCH] change global zonelist order v4 [0/2]

From: Christoph Lameter
Date: Fri May 04 2007 - 14:04:12 EST


On Fri, 4 May 2007, Jesse Barnes wrote:

> You mentioned that if node 0 has a small ZONE_NORMAL and the ZONE_DMA for
> the system, defaulting to using ZONE_NORMAL on all nodes first would be a
> bad idea. Is that really true? Maybe for ZONE_DMA32 it is since that
> first node could have a few gigs of memory, but for regular ZONE_DMA it's
> probably the right thing to do...

If the fallback sequence is f.e. Node 0 NORMAL (500m) Node 1 NORMAL(4G)
node 2 Normal (4G) ... many more ... Node 0 DMA32 (~4G) Node 0 DMA then
memory is frequently going to be not optimally placed for allocations from
processes running on node 0 because node 0 is memory starved.
Allocations will be made from node 1 which may create a shortage there
which fall again. Could be a cascade effect because the symmetry in
memory is no longer there.

The proposal to create an additional node may solve that to some extend by placing the
DMA node nearer to node 0.

Maybe the best approach is to leave things as is and just be careful with
I/O to 32 bits? I do not think there is an easy solution. A 64 bit NUMA
platforms should have I/O that is 64 bit capable and not restricted to DMA
zones.

> > So aside from the comment issues Lee already pointed out, I think
> Kamezawa-san's patch from
> http://marc.info/?l=linux-mm&m=117758484122663&w=4 seems reasonable.

If we are going to do this then the patch needs to be fine tuned first and
the impact on core code needs to be minimized. I want to make really sure
that platforms without DMA zones work right, if zones are empty it should
work right and weird x86_64 combinations of NORMAL, DMA and DMA32
distributed over various nodes would need to be covered and tested first.

How will this affect NUMAQ (32 bit NUMA) where we have HIGHMEM on the
(most) nodes and NORMAL/DMA on node 0?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/