summaryrefslogtreecommitdiff
path: root/docs/CGROUP_DELEGATION.md
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2022-02-14 18:05:31 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2022-02-14 19:06:40 +0000
commit1d7150ec7fd819805b2a19b1dd485be7de54a6a8 (patch)
tree5898fbe3763ef3217899adcec56ca9844b4dddf2 /docs/CGROUP_DELEGATION.md
parentd74da762a3b1edbb7935c3b3a229db601f734125 (diff)
downloadsystemd-1d7150ec7fd819805b2a19b1dd485be7de54a6a8.tar.gz
docs: make clear that if you use threaded cgroups you need to do that two levels down from your delegated cgroup
Prompted by: #22486
Diffstat (limited to 'docs/CGROUP_DELEGATION.md')
-rw-r--r--docs/CGROUP_DELEGATION.md9
1 files changed, 9 insertions, 0 deletions
diff --git a/docs/CGROUP_DELEGATION.md b/docs/CGROUP_DELEGATION.md
index 03340e7e8f..926d16eef6 100644
--- a/docs/CGROUP_DELEGATION.md
+++ b/docs/CGROUP_DELEGATION.md
@@ -266,6 +266,15 @@ tree by the time it notifies the service manager about start-up readiness, so
that the service's main cgroup is definitely an inner node by the time the
service manager might start `ExecStartPost=`.)
+(Also note, if you intend to use "threaded" cgroups — as added in Linux 4.14 —,
+then you should do that *two* levels down from the main service cgroup your
+turned delegation on for. Why that? You need one level so that systemd can
+properly create the `.control` subgroup, as described above. But that one
+cannot be threaded, since that would mean `.control` has to be threaded too —
+this is a requirement of threaded cgroups: either a cgroup and all its siblings
+are threaded or none –, but systemd expects it to be a regular cgroup. Thus you
+have to nest a second cgroup beneath it which then can be threaded.)
+
## Three Scenarios
Let's say you write a container manager, and you wonder what to do regarding