linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/14] cgroup: Implement cgroup v2 thread mode & CPU controller
@ 2017-04-21 14:03 Waiman Long
  2017-04-21 14:03 ` [RFC PATCH 01/14] cgroup: reorganize cgroup.procs / task write path Waiman Long
                   ` (14 more replies)
  0 siblings, 15 replies; 17+ messages in thread
From: Waiman Long @ 2017-04-21 14:03 UTC (permalink / raw)
  To: Tejun Heo, Li Zefan, Johannes Weiner, Peter Zijlstra, Ingo Molnar
  Cc: cgroups, linux-kernel, linux-doc, linux-mm, kernel-team, pjt,
	luto, efault, Waiman Long

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2017-04-26 22:30 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-21 14:03 [RFC PATCH 00/14] cgroup: Implement cgroup v2 thread mode & CPU controller Waiman Long
2017-04-21 14:03 ` [RFC PATCH 01/14] cgroup: reorganize cgroup.procs / task write path Waiman Long
2017-04-21 14:04 ` [RFC PATCH 02/14] cgroup: add @flags to css_task_iter_start() and implement CSS_TASK_ITER_PROCS Waiman Long
2017-04-21 14:04 ` [RFC PATCH 03/14] cgroup: introduce cgroup->proc_cgrp and threaded css_set handling Waiman Long
2017-04-21 14:04 ` [RFC PATCH 04/14] cgroup: implement CSS_TASK_ITER_THREADED Waiman Long
2017-04-21 14:04 ` [RFC PATCH 05/14] cgroup: implement cgroup v2 thread support Waiman Long
2017-04-21 14:04 ` [RFC PATCH 06/14] cgroup: Fix reference counting bug in cgroup_procs_write() Waiman Long
2017-04-21 14:04 ` [RFC PATCH 07/14] cgroup: Move debug cgroup to its own file Waiman Long
2017-04-21 14:04 ` [RFC PATCH 08/14] cgroup: Keep accurate count of tasks in each css_set Waiman Long
2017-04-21 14:04 ` [RFC PATCH 09/14] cgroup: Make debug cgroup support v2 and thread mode Waiman Long
2017-04-21 14:04 ` [RFC PATCH 10/14] cgroup: Implement new thread mode semantics Waiman Long
2017-04-21 14:04 ` [RFC PATCH 11/14] sched: Misc preps for cgroup unified hierarchy interface Waiman Long
2017-04-21 14:04 ` [RFC PATCH 12/14] sched: Implement interface for cgroup unified hierarchy Waiman Long
2017-04-21 14:04 ` [RFC PATCH 13/14] sched: Make cpu/cpuacct threaded controllers Waiman Long
2017-04-21 14:04 ` [RFC PATCH 14/14] cgroup: Enable separate control knobs for thread root internal processes Waiman Long
2017-04-26 16:05 ` [RFC PATCH 00/14] cgroup: Implement cgroup v2 thread mode & CPU controller Waiman Long
2017-04-26 22:30   ` Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).