• Linus Torvalds's avatar
    Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 191a7120
    Linus Torvalds authored
    Pull cgroup updates from Tejun Heo:
    
     - Fixes and a lot of cleanups.  Locking cleanup is finally complete.
       cgroup_mutex is no longer exposed to individual controlelrs which
       used to cause nasty deadlock issues.  Li fixed and cleaned up quite a
       bit including long standing ones like racy cgroup_path().
    
     - device cgroup now supports proper hierarchy thanks to Aristeu.
    
     - perf_event cgroup now supports proper hierarchy.
    
     - A new mount option "__DEVEL__sane_behavior" is added.  As indicated
       by the name, this option is to be used for development only at this
       point and generates a warning message when used.  Unfortunately,
       cgroup interface currently has too many brekages and inconsistencies
       to implement a consistent and unified hierarchy on top.  The new flag
       is used to collect the behavior changes which are necessary to
       implement consistent unified hierarchy.  It's likely that this flag
       won't be used verbatim when it becomes ready but will be enabled
       implicitly along with unified hierarchy.
    
       The option currently disables some of broken behaviors in cgroup core
       and also .use_hierarchy switch in memcg (will be routed through -mm),
       which can be used to make very unusual hierarchy where nesting is
       partially honored.  It will also be used to implement hierarchy
       support for blk-throttle which would be impossible otherwise without
       introducing a full separate set of control knobs.
    
       This is essentially versioning of interface which isn't very nice but
       at this point I can't see any other options which would allow keeping
       the interface the same while moving towards hierarchy behavior which
       is at least somewhat sane.  The planned unified hierarchy is likely
       to require some level of adaptation from userland anyway, so I think
       it'd be best to take the chance and update the interface such that
       it's supportable in the long term.
    
       Maintaining the existing interface does complicate cgroup core but
       shouldn't put too much strain on individual controllers and I think
       it'd be manageable for the foreseeable future.  Maybe we'll be able
       to drop it in a decade.
    
    Fix up conflicts (including a semantic one adding a new #include to ppc
    that was uncovered by header the file changes) as per Tejun.
    
    * 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (45 commits)
      cpuset: fix compile warning when CONFIG_SMP=n
      cpuset: fix cpu hotplug vs rebuild_sched_domains() race
      cpuset: use rebuild_sched_domains() in cpuset_hotplug_workfn()
      cgroup: restore the call to eventfd->poll()
      cgroup: fix use-after-free when umounting cgroupfs
      cgroup: fix broken file xattrs
      devcg: remove parent_cgroup.
      memcg: force use_hierarchy if sane_behavior
      cgroup: remove cgrp->top_cgroup
      cgroup: introduce sane_behavior mount option
      move cgroupfs_root to include/linux/cgroup.h
      cgroup: convert cgroupfs_root flag bits to masks and add CGRP_ prefix
      cgroup: make cgroup_path() not print double slashes
      Revert "cgroup: remove bind() method from cgroup_subsys."
      perf: make perf_event cgroup hierarchical
      cgroup: implement cgroup_is_descendant()
      cgroup: make sure parent won't be destroyed before its children
      cgroup: remove bind() method from cgroup_subsys.
      devcg: remove broken_hierarchy tag
      cgroup: remove cgroup_lock_is_held()
      ...
    191a7120
core.c 174 KB