• Tejun Heo's avatar
    cgroup: use css_set->mg_dst_cgrp for the migration target cgroup · e4857982
    Tejun Heo authored
    Migration can be multi-target on the default hierarchy when a
    controller is enabled - processes belonging to each child cgroup have
    to be moved to the child cgroup itself to refresh css association.
    
    This isn't a problem for cgroup_migrate_add_src() as each source
    css_set still maps to single source and target cgroups; however,
    cgroup_migrate_prepare_dst() is called once after all source css_sets
    are added and thus might not have a single destination cgroup.  This
    is currently worked around by specifying NULL for @dst_cgrp and using
    the source's default cgroup as destination as the only multi-target
    migration in use is self-targetting.  While this works, it's subtle
    and clunky.
    
    As all taget cgroups are already specified while preparing the source
    css_sets, this clunkiness can easily be removed by recording the
    target cgroup in each source css_set.  This patch adds
    css_set->mg_dst_cgrp which is recorded on cgroup_migrate_src() and
    used by cgroup_migrate_prepare_dst().  This also makes migration code
    ready for arbitrary multi-target migration.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    e4857982
cgroup.c 166 KB