Re: [RFC][PATCH] Remove cgroup member from struct page (v3)

From: Balbir Singh
Date: Thu Sep 18 2008 - 00:59:36 EST


KAMEZAWA Hiroyuki wrote:
> On Wed, 17 Sep 2008 18:40:08 -0700
> Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/