Hello, Linus. Two patches to fix a deadlock which can be easily triggered if memcg charge moving is used. This bug was introduced while converting threadgroup locking to a global percpu_rwsem and is caused by cgroup controller task migration path depending on the ability to create new kthreads. cpuset had a similar issue which was fixed by performing heavy-lifting operations asynchronous to task migration. The two patches fix the same issue in memcg in a similar way. The first patch makes the mechanism generic and the second relocates memcg charge moving outside the migration path. Given that we don't want to perform heavy operations while writelocking threadgroup lock anyway, moving them out of the way is a desirable solution. One thing to note is that the problem was difficult to debug because lockdep couldn't figure out the deadlock condition. Looking into how to improve that. Thanks. The following changes since commit bcc981e9ed84c678533299d7eff17d2c81e4d5de: Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 (2016-04-25 09:32:45 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-4.6-fixes for you to fetch changes up to 264a0ae164bc0e9144bebcd25ff030d067b1a878: memcg: relocate charge moving from ->attach to ->post_attach (2016-04-25 15:45:14 -0400) ---------------------------------------------------------------- Tejun Heo (2): cgroup, cpuset: replace cpuset_post_attach_flush() with cgroup_subsys->post_attach callback memcg: relocate charge moving from ->attach to ->post_attach include/linux/cgroup-defs.h | 1 + include/linux/cpuset.h | 6 ------ kernel/cgroup.c | 7 +++++-- kernel/cpuset.c | 4 ++-- mm/memcontrol.c | 37 +++++++++++++++++++------------------ 5 files changed, 27 insertions(+), 28 deletions(-) -- tejun -- 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