On Mon, Feb 20, 2006 at 07:30:41PM +0000, Joern RENNECKE wrote: > the bottleneck of a shared memory bus, but the operating system must > allocate > most memory locally to each CPU to avoid a bottleneck in the cross-connect > of the processors. >
Linux kernel 2.6.16-rc1 and above supports percpu_pagelist_fraction This is the fraction of pages at most (high mark pcp->high) in each zone that are allocated for each per cpu page list. The min value for this is 8. It means that we don't allow more than 1/8th of pages in each zone to be allocated in any single per_cpu_pagelist. This entry only changes the value of hot per cpu pagelists. User can specify a number like 100 to allocate 1/100th of each zone to each per cpu page list. The batch value of each per cpu pagelist is also updated as a result. It is set to pcp->high/4. The upper limit of batch is (PAGE_SHIFT * 8) The initial value is zero. Kernel does not use this value at boot time to set the high water marks for each per cpu page list. The optimal percpu_pagelist_fraction value depends on your configuation. H.J.