Re: [PATCH] cgroup: Don't drop the cgroup_mutex in cgroup_rmdir
From: Tejun Heo <hidden>
Date: 2012-07-20 19:49:26
Also in:
linux-mm
On Thu, Jul 19, 2012 at 07:39:32PM +0530, Aneesh Kumar K.V wrote:
From: "Aneesh Kumar K.V" <redacted> 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 <redacted>
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 [off-list ref] Thanks. -- tejun