On Fri, Mar 18, 2011 at 10:29:50AM -0400, Vivek Goyal wrote: > On Thu, Mar 17, 2011 at 01:43:50PM +0100, Johannes Weiner wrote: > > [..] > > So structures roughly like this: > > > > struct mem_cgroup { > > ... > > /* key is struct backing_dev_info * */ > > struct rb_root memcg_bdis; > > }; > > > > struct memcg_bdi { > > /* key is struct address_space * */ > > struct rb_root memcg_mappings; > > struct rb_node node; > > }; > > > > struct memcg_mapping { > > struct address_space *mapping; > > struct mem_cgroup *memcg; > > struct rb_node node; > > atomic_t count; > > }; > > > > struct page_cgroup { > > ... > > struct memcg_mapping *memcg_mapping; > > }; > > Johannes, didn't you want page->mapping to point to memcg_mapping instead > of increasing the size of page_cgroup? Initially, yes, but this is far less invasive. We don't increase page_cgroup, though: memcg_mapping contains the pointer to struct mem_cgroup, it can replace pc->memcg for now. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html