On 09/26/2012 08:01 PM, Michal Hocko wrote: > On Wed 26-09-12 18:33:10, Glauber Costa wrote: >> On 09/26/2012 06:03 PM, Michal Hocko wrote: >>> On Tue 18-09-12 18:04:01, Glauber Costa wrote: > [...] >>>> @@ -4961,6 +5015,12 @@ mem_cgroup_create(struct cgroup *cont) >>>> int cpu; >>>> enable_swap_cgroup(); >>>> parent = NULL; >>>> + >>>> +#ifdef CONFIG_MEMCG_KMEM >>>> + WARN_ON(cgroup_add_cftypes(&mem_cgroup_subsys, >>>> + kmem_cgroup_files)); >>>> +#endif >>>> + >>>> if (mem_cgroup_soft_limit_tree_init()) >>>> goto free_out; >>>> root_mem_cgroup = memcg; >>>> @@ -4979,6 +5039,7 @@ mem_cgroup_create(struct cgroup *cont) >>>> if (parent && parent->use_hierarchy) { >>>> res_counter_init(&memcg->res, &parent->res); >>>> res_counter_init(&memcg->memsw, &parent->memsw); >>>> + res_counter_init(&memcg->kmem, &parent->kmem); >>> >>> Haven't we already discussed that a new memcg should inherit kmem_accounted >>> from its parent for use_hierarchy? >>> Say we have >>> root >>> | >>> A (kmem_accounted = 1, use_hierachy = 1) >>> \ >>> B (kmem_accounted = 0) >>> \ >>> C (kmem_accounted = 1) >>> >>> B find's itself in an awkward situation becuase it doesn't want to >>> account u+k but it ends up doing so becuase C. >>> >> >> Ok, I haven't updated it here. But that should be taken care of in the >> lifecycle patch. > > I am not sure which patch you are thinking about but I would prefer to > have it here because it is safe wrt. races and it is more obvious as > well. > The patch where I make kmem_accounted into a bitfield. So any code here will eventually disappear. But BTW, I am not saying I won't update the patch - I like that all patches work and make sense in their own, I am just saying that I forgot to update this patch, because I added the code in its final version to the end and then squashed it. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>