On 05/20/2013 12:06 AM, Glauber Costa wrote: > Initial notes: > ============== > > Please pay attention to new patches that are debuting in this series. Patch1 > changes our unused countries for int to long, since Dave noticed that it wasn't > being enough in some cases. Aside from that, the major change is that we now > compute and keep deferred work per-node (Patch13). The biggest effect of this, > is that to avoid storing a new nodemask in the stack, I am passing only the > node id down to the API. This means that the lru API *does not* take a nodemask > any longer, which in turn, makes it simpler. > > I deeply considered this matter, and decided this would be the best way to go. > It is not different from what I have already done for memcgs: Only a single one > is passed down, and the complexity of scanning them is moved upwards to the > caller, where all the scanning logic should belong anyway. > > If you want, you can also grab from branch "kmemcg-lru-shrinker" at: > > git://git.kernel.org/pub/scm/linux/kernel/git/glommer/memcg.git > > I hope the performance problems are all gone. My testing now shows a smoother > and steady state for the objects during the lifetime of the workload, and > postmark numbers are closer to base, although we do deviate a bit. > Mel, Dave, et. al. I have applied some more fixes for things I have found here and there as a result of a new round of testing. I won't post the result here until Thursday or Friday, to avoid patchbombing you guys. In the meantime I will be merging comments I receive from this version. My git tree is up to date, so if you want to test it further, please pick that up. I am attaching the result of my postmark run. I think the results look really good now.