On Mon 21-01-13 17:33:49, Michal Hocko wrote: > On Mon 21-01-13 20:12:17, Glauber Costa wrote: > > On 01/21/2013 08:07 PM, Michal Hocko wrote: > > >> > And the reason why kmemcg holds the set_limit mutex > > >> > is just to protect from itself, then there is no *need* to hold any > > >> > extra lock (and we'll never be able to stop holding the creation lock, > > >> > whatever it is). So my main point here is not memcg_mutex vs > > >> > set_limit_mutex, but rather, memcg_mutex is needed anyway, and once it > > >> > is taken, the set_limit_mutex *can* be held, but doesn't need to. > > > So you can update kmem specific usage of set_limit_mutex. > > Meaning ? > > I thought you've said it is not needed and the code says that: > - memcg_propagate_kmem is called with memcg_mutex held in css_alloc > - memcg_update_kmem_limit takes both of them > - kmem_cache_destroy_memcg_children _doesn't_ take both > > So one obvious way to go would be changing > kmem_cache_destroy_memcg_children to memcg_mutex and removing > set_limit_mutex from other two paths. > > This would leave set_limit_mutex lock for its original intention. And then we could use a more suitable name: memcg_create_lock -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html