[PATCHSET cgroup/for-4.6] cgroup: update migration destination cgroup handling

From: Tejun Heo
Date: Thu Mar 03 2016 - 12:20:21 EST


Hello,

cgroup migrations used to always be single destination. There could
be multiple sources but there was only one destination cgroup. This
changed with default hierarchy as enabling a controller would move
processes in child cgroups into separate csses. This was developed
over time and is working correctly now but the way multiple
destinations are handled is hacky and fragile. This patchset updates
migration logic so that multi-destination handling is integral.

This patchset contains the following four patches.

0001-cgroup-fix-incorrect-destination-cgroup-in-cgroup_up.patch
0002-cgroup-move-migration-destination-verification-out-o.patch
0003-cgroup-make-cgroup-_taskset-_migrate-take-cgroup_roo.patch
0004-cgroup-use-css_set-mg_dst_cgrp-for-the-migration-tar.patch

It's based on cgroup/for-4.6 549626047df9 ("cgroup: update css
iteration in cgroup_update_dfl_csses()") and available on the
following git branch.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git review-dst-updates

diffstat follows.

include/linux/cgroup-defs.h | 9 +--
kernel/cgroup.c | 126 ++++++++++++++++++++++++--------------------
2 files changed, 74 insertions(+), 61 deletions(-)

Thanks.

--
tejun