Messages in this thread | | | Date | Wed, 17 Sep 2008 21:58:08 -0700 | From | Balbir Singh <> | Subject | Re: [RFC][PATCH] Remove cgroup member from struct page (v3) |
| |
KAMEZAWA Hiroyuki wrote: > On Wed, 17 Sep 2008 18:40:08 -0700 > Andrew Morton <akpm@linux-foundation.org> wrote: >>> Advantages of the patch >>> >>> 1. It removes the extra pointer in struct page >>> >>> Disadvantages >>> >>> 1. Radix tree lookup is not an O(1) operation, once the page is known >>> getting to the page_cgroup (pc) is a little more expensive now. >> Why are we doing this? I can guess, but I'd rather not have to. >> >> a) It's slower. >> >> b) It uses even more memory worst-case. >> >> c) It uses less memory best-case. >> >> someone somewhere decided that (Aa + Bb) / Cc < 1.0. What are the values >> of A, B and C and where did they come from? ;) >> > > Balbir, don't you like pre-allocate-page-cgroup-at-boot at all ? > I don't like radix-tree for objects which can spread to very vast/sparse area ;) >
I tried one version, but before trying a pre-allocation version, I wanted to spread out the radix-tree and try and the results seemed quite impressive. We can still do pre-allocation, but it gets more complicated as we start supporting all memory models. I do have a design on paper, but it is much more complex than this.
> BTW, I already have lazy-lru-by-pagevec protocol on my patch(hash version) and > seems to work well. I'm now testing it and will post today if I'm enough lucky.
cool! Please do post what numbers you see as well. I would appreciate if you can try this version and see what sort of performance issues you see.
-- Balbir
| |