From: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org,
peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org,
efault-Mmb7MZpHnFY@public.gmane.org
Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kernel-team-b10kYP2dOMg@public.gmane.org,
lvenanci-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Subject: [PATCHSET for-4.11] cgroup: implement cgroup v2 thread mode
Date: Thu, 2 Feb 2017 15:06:27 -0500 [thread overview]
Message-ID: <20170202200632.13992-1-tj@kernel.org> (raw)
Hello,
This patchset implements cgroup v2 thread mode. It is largely based
on the discussions that we had at the plumbers last year. Here's the
rough outline.
* Thread mode is explicitly enabled on a cgroup by writing "enable"
into "cgroup.threads" file. The cgroup shouldn't have any child
cgroups or enabled controllers.
* Once enabled, arbitrary sub-hierarchy can be created and threads can
be put anywhere in the subtree by writing TIDs into "cgroup.threads"
file. Process granularity and no-internal-process constraint don't
apply in a threaded subtree.
* To be used in a threaded subtree, controllers should explicitly
declare thread mode support and should be able to handle internal
competition in some way.
* The root of a threaded subtree serves as the resource domain for the
whole subtree. This is where all the controllers are guaranteed to
have a common ground and resource consumptions in the threaded
subtree which aren't tied to a specific thread are charged.
Non-threaded controllers never see beyond thread root and can assume
that all controllers will follow the same rules upto that point.
This allows threaded controllers to implement thread granular resource
control without getting in the way of system level resource
partitioning.
This patchset contains the following five patches. For more details
on the interface and behavior, please refer to the last patch.
0001-cgroup-reorganize-cgroup.procs-task-write-path.patch
0002-cgroup-add-flags-to-css_task_iter_start-and-implemen.patch
0003-cgroup-introduce-cgroup-proc_cgrp-and-threaded-css_s.patch
0004-cgroup-implement-CSS_TASK_ITER_THREADED.patch
0005-cgroup-implement-cgroup-v2-thread-support.patch
This patchset is on top of cgroup/for-4.11 63f1ca59453a ("Merge branch
'cgroup/for-4.11-rdmacg' into cgroup/for-4.11") and available in the
following git branch.
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-cgroup2-threads
diffstat follows. Thanks.
Documentation/cgroup-v2.txt | 75 ++++-
include/linux/cgroup-defs.h | 38 ++
include/linux/cgroup.h | 12
kernel/cgroup/cgroup-internal.h | 8
kernel/cgroup/cgroup-v1.c | 64 +++-
kernel/cgroup/cgroup.c | 589 ++++++++++++++++++++++++++++++++--------
kernel/cgroup/cpuset.c | 6
kernel/cgroup/freezer.c | 6
kernel/cgroup/pids.c | 1
kernel/events/core.c | 1
mm/memcontrol.c | 2
net/core/netclassid_cgroup.c | 2
12 files changed, 671 insertions(+), 133 deletions(-)
--
tejun
next reply other threads:[~2017-02-02 20:06 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-02 20:06 Tejun Heo [this message]
2017-02-02 20:06 ` [PATCH 1/5] cgroup: reorganize cgroup.procs / task write path Tejun Heo
2017-02-02 20:06 ` [PATCH 2/5] cgroup: add @flags to css_task_iter_start() and implement CSS_TASK_ITER_PROCS Tejun Heo
2017-02-02 20:06 ` [PATCH 4/5] cgroup: implement CSS_TASK_ITER_THREADED Tejun Heo
[not found] ` <20170202200632.13992-1-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-02-02 20:06 ` [PATCH 3/5] cgroup: introduce cgroup->proc_cgrp and threaded css_set handling Tejun Heo
2017-02-02 20:06 ` [PATCH 5/5] cgroup: implement cgroup v2 thread support Tejun Heo
2017-02-02 21:32 ` [PATCHSET for-4.11] cgroup: implement cgroup v2 thread mode Andy Lutomirski
[not found] ` <CALCETrW6Mqj9VLogd0XaLgVAzEqsZ+VnZjN5NROCqr0ssdYaKg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-02 21:52 ` Tejun Heo
[not found] ` <20170202215229.GA27231-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2017-02-03 21:10 ` Andy Lutomirski
2017-02-03 21:56 ` Tejun Heo
2017-02-06 9:50 ` Peter Zijlstra
2017-02-03 20:20 ` Peter Zijlstra
[not found] ` <20170203202048.GD6515-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2017-02-03 20:59 ` Tejun Heo
[not found] ` <20170203205955.GA9886-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2017-02-06 12:49 ` Peter Zijlstra
[not found] ` <20170206124943.GJ6515-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2017-02-08 23:08 ` Tejun Heo
[not found] ` <20170208230819.GD25826-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2017-02-09 10:29 ` Peter Zijlstra
[not found] ` <20170209102909.GC6515-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2017-02-10 15:45 ` Tejun Heo
[not found] ` <20170210154508.GA16097-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2017-02-10 17:51 ` Peter Zijlstra
[not found] ` <20170210175145.GJ6515-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2017-02-12 5:05 ` Tejun Heo
[not found] ` <20170212050544.GJ29323-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2017-02-12 6:59 ` Mike Galbraith
2017-02-13 5:45 ` Mike Galbraith
[not found] ` <1486964707.5912.93.camel-Mmb7MZpHnFY@public.gmane.org>
2017-03-13 19:26 ` Tejun Heo
2017-03-14 14:45 ` Mike Galbraith
2017-02-14 10:35 ` Peter Zijlstra
[not found] ` <20170214103541.GS6515-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2017-03-13 20:05 ` Tejun Heo
[not found] ` <20170313200544.GE15709-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2017-03-21 12:39 ` Peter Zijlstra
[not found] ` <20170321123958.af7mcvcovexxzahu-Nxj+rRp3nVydTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2017-03-22 14:52 ` Peter Zijlstra
2017-02-09 13:07 ` Paul Turner
2017-02-09 14:47 ` Peter Zijlstra
2017-02-09 15:08 ` Mike Galbraith
[not found] ` <CAPM31RJaJjFwenC36Abij+EdzO3KBm-DEjQ_crSmzrtrrn2N2A@mail.gmail.com>
2017-02-13 5:28 ` Mike Galbraith
[not found] ` <CAPM31RKHsM1-iWb5B6jkOtLomLhiOARtgMOTWZ8p1yjEn-ZK0A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-10 15:46 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170202200632.13992-1-tj@kernel.org \
--to=tj-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=efault-Mmb7MZpHnFY@public.gmane.org \
--cc=hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org \
--cc=kernel-team-b10kYP2dOMg@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org \
--cc=lvenanci-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).