On 11/28/2012 01:33 PM, Michal Hocko wrote: > On Wed 28-11-12 13:23:57, Glauber Costa wrote: >> On 11/28/2012 01:17 PM, Michal Hocko wrote: >>> On Wed 28-11-12 17:47:59, KAMEZAWA Hiroyuki wrote: >>>> (2012/11/27 3:47), Michal Hocko wrote: >>> [...] >>>>> + /* >>>>> + * Even if we found a group we have to make sure it is alive. >>>>> + * css && !memcg means that the groups should be skipped and >>>>> + * we should continue the tree walk. >>>>> + * last_visited css is safe to use because it is protected by >>>>> + * css_get and the tree walk is rcu safe. >>>>> + */ >>>>> + if (css == &root->css || (css && css_tryget(css))) >>>>> + memcg = mem_cgroup_from_css(css); >>>> >>>> Could you note that this iterator will never visit dangling(removed) >>>> memcg, somewhere ? >>> >>> OK, I can add it to the function comment but the behavior hasn't changed >>> so I wouldn't like to confuse anybody. >>> >>>> Hmm, I'm not sure but it may be trouble at shrkinking dangling >>>> kmem_cache(slab). >>> >>> We do not shrink slab at all. >> >> yet. However... >> >>> Those objects that are in a dead memcg >>> wait for their owner tho release them which will make the dangling group >>> eventually go away >>> >>>> >>>> Costa, how do you think ? >>>> >> >> In general, I particularly believe it is a good idea to skip dead memcgs >> in the iterator. I don't anticipate any problems with shrinking at all. > > We even cannot iterate dead ones because their cgroups are gone and so > you do not have any way to iterate. So either make them alive by css_get > or we cannot iterate them. > We are in full agreement. -- 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>