Messages in this thread | | | Date | Wed, 28 Apr 2010 22:57:18 -0500 | From | Robin Holt <> | Subject | Re: [PATCH v2] - Randomize node rotor used in cpuset_mem_spread_node() |
| |
On Wed, Apr 28, 2010 at 03:40:34PM -0700, Andrew Morton wrote: > On Wed, 28 Apr 2010 10:04:32 -0500 > Jack Steiner <steiner@sgi.com> wrote: > > > Some workloads that create a large number of small files tend to assign > > too many pages to node 0 (multi-node systems). Part of the reason is that > > the rotor (in cpuset_mem_spread_node()) used to assign nodes starts > > at node 0 for newly created tasks. > > And, presumably, your secret testcase forks lots of subprocesses which > do the file creation?
I think the test case he was using was aim7 or a kernel compile. Anything that opens a lot of small files will quickly deplete node 0.
> > This patch changes the rotor to be initialized to a random node number > > of the cpuset. > > Why random as opposed to, say, inherit-rotor-from-parent?
If I have something like a find ... -exec grep ..., won't the pages be biased towards the nodes adjacent to the parent's rotor values. Maybe I misunderstood Jack's problem, but I believe that was what he was seeing and why he chose random.
I hope I did not misunderstand Jack's problem and mislead this discussion.
Thanks, Robin Holt
| |