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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>