• Linus Torvalds's avatar
    Merge branch 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 6b5f04b6
    Linus Torvalds authored
    Pull cgroup updates from Tejun Heo:
     "cgroup changes for v4.6-rc1.  No userland visible behavior changes in
      this pull request.  I'll send out a separate pull request for the
      addition of cgroup namespace support.
    
       - The biggest change is the revamping of cgroup core task migration
         and controller handling logic.  There are quite a few places where
         controllers and tasks are manipulated.  Previously, many of those
         places implemented custom operations for each specific use case
         assuming specific starting conditions.  While this worked, it makes
         the code fragile and difficult to follow.
    
         The bulk of this pull request restructures these operations so that
         most related operations are performed through common helpers which
         implement recursive (subtrees are always processed consistently)
         and idempotent (they make cgroup hierarchy converge to the target
         state rather than performing operations assuming specific starting
         conditions).  This makes the code a lot easier to understand,
         verify and extend.
    
       - Implicit controller support is added.  This is primarily for using
         perf_event on the v2 hierarchy so that perf can match cgroup v2
         path without requiring the user to do anything special.  The kernel
         portion of perf_event changes is acked but userland changes are
         still pending review.
    
       - cgroup_no_v1= boot parameter added to ease testing cgroup v2 in
         certain environments.
    
       - There is a regression introduced during v4.4 devel cycle where
         attempts to migrate zombie tasks can mess up internal object
         management.  This was fixed earlier this week and included in this
         pull request w/ stable cc'd.
    
       - Misc non-critical fixes and improvements"
    
    * 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (44 commits)
      cgroup: avoid false positive gcc-6 warning
      cgroup: ignore css_sets associated with dead cgroups during migration
      Documentation: cgroup v2: Trivial heading correction.
      cgroup: implement cgroup_subsys->implicit_on_dfl
      cgroup: use css_set->mg_dst_cgrp for the migration target cgroup
      cgroup: make cgroup[_taskset]_migrate() take cgroup_root instead of cgroup
      cgroup: move migration destination verification out of cgroup_migrate_prepare_dst()
      cgroup: fix incorrect destination cgroup in cgroup_update_dfl_csses()
      cgroup: Trivial correction to reflect controller.
      cgroup: remove stale item in cgroup-v1 document INDEX file.
      cgroup: update css iteration in cgroup_update_dfl_csses()
      cgroup: allocate 2x cgrp_cset_links when setting up a new root
      cgroup: make cgroup_calc_subtree_ss_mask() take @this_ss_mask
      cgroup: reimplement rebind_subsystems() using cgroup_apply_control() and friends
      cgroup: use cgroup_apply_enable_control() in cgroup creation path
      cgroup: combine cgroup_mutex locking and offline css draining
      cgroup: factor out cgroup_{apply|finalize}_control() from cgroup_subtree_control_write()
      cgroup: introduce cgroup_{save|propagate|restore}_control()
      cgroup: make cgroup_drain_offline() and cgroup_apply_control_{disable|enable}() recursive
      cgroup: factor out cgroup_apply_control_enable() from cgroup_subtree_control_write()
      ...
    6b5f04b6
Kconfig 64.6 KB