Re: [PATCH]: Free pages from local pcp lists under tight memory conditions

Paul Jackson
2005-11-24T03:02:37Z

Rohit wrote:
> I thought Nick et.al came up with some of the constant values like batch
> size to tackle the page coloring issue specifically.

I think this came about on a linux-ia64 thread started by Jack Steiner:

http://www.gelato.unsw.edu.au/archives/linux-ia64/0504/13668.html
Subject: per_cpu_pagesets degrades MPI performance
From: Jack Steiner <steiner_at_sgi.com>
Date: 2005-04-05 05:28:27

Jack reported that per_cpu_pagesets were degrading some MPI benchmarks due
to adverse page coloring. Nick responded, recommending a non-power of two
batch size. Jack found that this helped nicely. This thread trails off,
but seems to be the origins of the 2**n-1 batch size in:

mm/page_alloc.c:zone_batchsize()
* Clamp the batch to a 2^n - 1 value. Having a power ...
batch = (1 << fls(batch + batch/2)) - 1;

I don't see here evidence that "per_cpu_pagelist is ... one single main
reason the coloring effect is drastically reduced in 2.6 (over 2.4)
based kernels." Rather in this case anyway a batch size not a power of
two was apparently needed to keep per_cpu_pagesets from hurting
performance due to page coloring affects on some workloads.

--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.925.600.0401