Re: [PATCH] Apply memory policies to top two highest zones when highest zone is ZONE_MOVABLE

From: Mel Gorman
Date: Fri Aug 03 2007 - 20:24:24 EST


On (04/08/07 00:02), Andi Kleen didst pronounce:
> On Thursday 02 August 2007 19:21:18 Mel Gorman wrote:
> > The NUMA layer only supports NUMA policies for the highest zone. When
> > ZONE_MOVABLE is configured with kernelcore=, the the highest zone becomes
> > ZONE_MOVABLE. The result is that policies are only applied to allocations
> > like anonymous pages and page cache allocated from ZONE_MOVABLE when the
> > zone is used.
> >
> > This patch applies policies to the two highest zones when the highest zone
> > is ZONE_MOVABLE. As ZONE_MOVABLE consists of pages from the highest "real"
> > zone, it's always functionally equivalent.
> >
> > The patch has been tested on a variety of machines both NUMA and non-NUMA
> > covering x86, x86_64 and ppc64. No abnormal results were seen in kernbench,
> > tbench, dbench or hackbench. It passes regression tests from the numactl
> > package with and without kernelcore= once numactl tests are patched to
> > wait for vmstat counters to update.
>
> I must honestly say I really hate the patch. It's a horrible hack and makes fast paths
> slower. When I designed mempolicies I especially tried to avoid things
> like that, please don't add them through the backdoor now.
>

It only affects hot paths in the NUMA case so non-NUMA users will not care. For
NUMA users, I have posted patches that eliminate multiple zonelists altogether
which will reduce cache footprint (something like 7K per node on x86_64)
and make things like MPOL_BIND behave in a consistent manner. That would
cost on CPU but save on cache which would (hopefully) result in a net gain
in most cases.

I would like to go with this patch for now just for policies but for 2.6.23,
we could leave it as "policies only apply to ZONE_MOVABLE when it is used" if
you really insisted on it. It's less than ideal though for sure.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
-
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/