[PATCHSET for-4.11] cgroup: avoid spurious identity ->*attach() invocations

From: Tejun Heo
Date: Thu Dec 29 2016 - 17:11:40 EST


Hello,

On the v2 hierarchy, when controllers are enabled and disabled, other
->*attach() callbacks of other controllers are called spuriously with
the same source and destination. While this isn't critical, it's a
bit nasty and can lead to temporary double charging on certain
controllers. This patchset fixes the issue.

This patchset contains the following three patches.

0001-cgroup-cosmetic-update-to-cgroup_taskset_add.patch
0002-cgroup-track-migration-context-in-cgroup_mgctx.patch
0003-cgroup-call-subsys-attach-only-for-subsystems-which-.patch

0001-0002 restructures migration context tracking so that extra state
can be tracked easily. 0003 fixes the spurious ->*attach()
invocations.

This patchset is also available in the following git branch.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-avoid-identity-attach

diffstat follows.

kernel/cgroup/cgroup-internal.h | 69 +++++++++++++++--
kernel/cgroup/cgroup-v1.c | 10 +-
kernel/cgroup/cgroup.c | 161 ++++++++++++++++------------------------
3 files changed, 135 insertions(+), 105 deletions(-)

Thanks.

--
tejun