[RFC PATCH 00/14] cgroup: Implement cgroup v2 thread mode & CPU controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patchset incorporates the following 2 patchsets from Tejun Heo:

 1) cgroup v2 thread mode patchset (5 patches)
    https://lkml.org/lkml/2017/2/2/592
 2) CPU Controller on Control Group v2 (2 patches)
    https://lkml.org/lkml/2016/8/5/368

Additional patches are then layered on top to implement the following
new features:

 1) An enhanced v2 thread mode where a thread root (root of a threaded
    subtree) can have non-threaded children with non-threaded
    controllers enabled and no internal process constraint does
    not apply.
 2) An enhanced debug controller which dumps out more information
    relevant to the debugging and testing of cgroup v2 in general.
 3) Separate control knobs for resource domain controllers can be
    enabled in a thread root to manage all the internal processes in
    the threaded subtree.

Patches 1-5 are Tejun's cgroup v2 thread mode patchset.

Patch 6 fixes a task_struct reference counting bug introduced in
patch 1.

Patch 7 moves the debug cgroup out from cgroup_v1.c into its own
file.

Patch 8 keeps more accurate counts of the number of tasks associated
with each css_set.

Patch 9 enhances the debug controller to provide more information
relevant to the cgroup v2 thread mode to ease debugging effort.

Patch 10 implements the enhanced cgroup v2 thread mode with the
following enhancements:

 1) Thread roots are treated differently from threaded cgroups.
 2) Thread root can now have non-threaded controllers enabled as well
    as non-threaded children.

Patches 11-12 are Tejun's CPU controller on control group v2 patchset.

Patch 13 makes both cpu and cpuacct controllers threaded.

Patch 14 enables the creation of a special "cgroup.self" directory
under the thread root to hold resource control knobs for controllers
that don't want resource competiton between internal processes and
non-threaded child cgroups.

Preliminary testing was done with the debug controller enabled. Things
seemed to work fine so far. More rigorous testing will be needed, and
any suggestions are welcome.

Tejun Heo (7):
  cgroup: reorganize cgroup.procs / task write path
  cgroup: add @flags to css_task_iter_start() and implement
    CSS_TASK_ITER_PROCS
  cgroup: introduce cgroup->proc_cgrp and threaded css_set handling
  cgroup: implement CSS_TASK_ITER_THREADED
  cgroup: implement cgroup v2 thread support
  sched: Misc preps for cgroup unified hierarchy interface
  sched: Implement interface for cgroup unified hierarchy

Waiman Long (7):
  cgroup: Fix reference counting bug in cgroup_procs_write()
  cgroup: Move debug cgroup to its own file
  cgroup: Keep accurate count of tasks in each css_set
  cgroup: Make debug cgroup support v2 and thread mode
  cgroup: Implement new thread mode semantics
  sched: Make cpu/cpuacct threaded controllers
  cgroup: Enable separate control knobs for thread root internal
    processes

 Documentation/cgroup-v2.txt     | 114 +++++-
 include/linux/cgroup-defs.h     |  56 +++
 include/linux/cgroup.h          |  12 +-
 kernel/cgroup/Makefile          |   1 +
 kernel/cgroup/cgroup-internal.h |  18 +-
 kernel/cgroup/cgroup-v1.c       | 217 +++-------
 kernel/cgroup/cgroup.c          | 862 ++++++++++++++++++++++++++++++++++------
 kernel/cgroup/cpuset.c          |   6 +-
 kernel/cgroup/debug.c           | 284 +++++++++++++
 kernel/cgroup/freezer.c         |   6 +-
 kernel/cgroup/pids.c            |   1 +
 kernel/events/core.c            |   1 +
 kernel/sched/core.c             | 150 ++++++-
 kernel/sched/cpuacct.c          |  55 ++-
 kernel/sched/cpuacct.h          |   5 +
 mm/memcontrol.c                 |   3 +-
 net/core/netclassid_cgroup.c    |   2 +-
 17 files changed, 1478 insertions(+), 315 deletions(-)
 create mode 100644 kernel/cgroup/debug.c

-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe cgroups" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [Monitors]

  Powered by Linux