These patches present an alternative to some of the other cgroups locking/refcount patches that have been proposed on LKML recently. Several of these patches have been to address the race opened by moving the calls to pre_destroy() callbacks outside of cgroup_mutex; rather than continuing to patch up the holes caused by that change, these patches introduce new locking/refcount rules to ultimately allow the previous atomicity of cgroup_rmdir() to be restored. These three patches give: 1/3 - introduce a per-subsystem hierarchy_mutex which a subsystem can use to prevent changes to its own cgroup tree 2/3 - use hierarchy_mutex in place of calling cgroup_lock() in the memory controller 3/3 - introduce a css_tryget() function similar to the one proposed by Kamezawa, but avoiding spurious refcount failures in the event of a race between a css_tryget() and an unsuccessful cgroup_rmdir() Future patches will likely involve: - using hierarchy mutex in place of cgroup_lock() in more subsystems where appropriate - restoring the atomicity of cgroup_rmdir() with respect to cgroup_create() Signed-off-by: Paul Menage <menage@xxxxxxxxxx> _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers