On Thu, Jul 19, 2012 at 07:39:32PM +0530, Aneesh Kumar K.V wrote: > From: "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxxxxxxx> > > We dropped cgroup mutex, because of a deadlock between memcg and cpuset. > cpuset took hotplug lock followed by cgroup_mutex, where as memcg pre_destroy > did lru_add_drain_all() which took hotplug lock while already holding > cgroup_mutex. The deadlock is explained in 3fa59dfbc3b223f02c26593be69ce6fc9a940405 > But dropping cgroup_mutex in cgroup_rmdir also means tasks could get > added to cgroup while we are in pre_destroy. This makes error handling in > pre_destroy complex. So move the unlock/lock to memcg pre_destroy callback. > Core cgroup will now call pre_destroy with cgroup_mutex held. > > Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> So, umm, let's not do this at this point. Please just fix memcg such that it doesn't fail ->pre_destroy() and drop subsys->__DEPRECATED_clear_css_refs. cgroup core won't give away new references during or after pre_destroy that way and memcg is the ONLY subsystem needing the deprecated behavior so it's rather counter-productive to implement work-around at this point. Nacked-And-Please-Drop-The-DEPRECATED-Behavior-by: Tejun Heo <tj@xxxxxxxxxx> Thanks. -- tejun -- 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>