Messages in this thread |  | | | Date | Tue, 3 Aug 2010 12:21:58 +0900 | | From | KAMEZAWA Hiroyuki <> | | Subject | Re: [PATCH -mm 1/5] quick lookup memcg by ID |
| |
On Tue, 3 Aug 2010 08:52:16 +0530 Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
> * KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2010-08-02 19:13:04]: > > > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> > > > > Now, memory cgroup has an ID per cgroup and make use of it at > > - hierarchy walk, > > - swap recording. > > > > This patch is for making more use of it. The final purpose is > > to replace page_cgroup->mem_cgroup's pointer to an unsigned short. > > > > This patch caches a pointer of memcg in an array. By this, we > > don't have to call css_lookup() which requires radix-hash walk. > > This saves some amount of memory footprint at lookup memcg via id. > > > > It is a memory versus speed tradeoff, but if the number of created > cgroups is low, it might not be all that slow, besides we do that for > swap_cgroup anyway - no? >
In following patch, pc->page_cgroup is changed from pointer to ID. Then, this lookup happens in lru_add/del, for example. And, by this, we can place all lookup related things to __read_mostly. With css_lookup(), we can't do it and have to be afraid of cache behavior.
I hear there are a users who create 2000+ cgroups and considering about "low number" user here is not important. This patch is a help for getting _stable_ performance even when there are many cgroups.
Thanks, -Kame
|  |