From: Otto Sabart <ottosabart@seberm.com>
To: linux-doc@vger.kernel.org
Cc: Tejun Heo <tj@kernel.org>, Jonathan Corbet <corbet@lwn.net>,
linux-kernel@vger.kernel.org
Subject: [PATCH 1/2] doc: cgroup: use graphviz code instead of ASCII art
Date: Sun, 30 Dec 2018 17:49:45 +0100 [thread overview]
Message-ID: <20181230164945.GA2644@personal> (raw)
[-- Attachment #1: Type: text/plain, Size: 3793 bytes --]
The graphviz looks better. This patch also fixes multiple build warnings:
"WARNING: Block quote ends without a blank line; unexpected unindent."
Signed-off-by: Otto Sabart <ottosabart@seberm.com>
---
Documentation/admin-guide/cgroup-v2.rst | 83 ++++++++++++++++++++-----
1 file changed, 66 insertions(+), 17 deletions(-)
diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst
index 7bf3f129c68b..80c88a0869e4 100644
--- a/Documentation/admin-guide/cgroup-v2.rst
+++ b/Documentation/admin-guide/cgroup-v2.rst
@@ -344,10 +344,21 @@ example, to start a clean-up operation after all processes of a given
sub-hierarchy have exited. The populated state updates and
notifications are recursive. Consider the following sub-hierarchy
where the numbers in the parentheses represent the numbers of processes
-in each cgroup::
+in each cgroup:
- A(4) - B(0) - C(1)
- \ D(0)
+.. kernel-render:: DOT
+ :alt: hierarchy
+
+ digraph subhierarchy {
+ edge [
+ arrowhead="none"
+ ];
+ rankdir=LR;
+
+ "A(4)" -> "B(0)";
+ "B(0)" -> "C(1)";
+ "B(0)" -> "D(0)";
+ }
A, B and C's "populated" fields would be 1 while D's 0. After the one
process in C exits, B and C's "populated" fields would flip to "0" and
@@ -380,10 +391,21 @@ are specified, the last one is effective.
Enabling a controller in a cgroup indicates that the distribution of
the target resource across its immediate children will be controlled.
Consider the following sub-hierarchy. The enabled controllers are
-listed in parentheses::
+listed in parentheses:
+
+.. kernel-render:: DOT
+ :alt: hierarchy
- A(cpu,memory) - B(memory) - C()
- \ D()
+ digraph subhierarchy {
+ edge [
+ arrowhead="none"
+ ];
+ rankdir=LR;
+
+ "A(cpu,memory)" -> "B(memory)";
+ "B(memory)" -> "C()";
+ "B(memory)" -> "D()";
+ }
As A has "cpu" and "memory" enabled, A will control the distribution
of CPU cycles and memory to its children, in this case, B. As B has
@@ -497,12 +519,30 @@ in from or push out to outside the sub-hierarchy.
For an example, let's assume cgroups C0 and C1 have been delegated to
user U0 who created C00, C01 under C0 and C10 under C1 as follows and
-all processes under C0 and C1 belong to U0::
+all processes under C0 and C1 belong to U0:
+
+.. kernel-render:: DOT
+ :alt: cgroup hierarchy
- ~~~~~~~~~~~~~ - C0 - C00
- ~ cgroup ~ \ C01
- ~ hierarchy ~
- ~~~~~~~~~~~~~ - C1 - C10
+ digraph hierarchyc0 {
+ edge [
+ arrowhead="none"
+ ];
+
+ "C0" -> "C00";
+ "C0" -> "C01";
+ }
+
+.. kernel-render:: DOT
+ :alt: cgroup hierarchy
+
+ digraph hierarchyc1 {
+ edge [
+ arrowhead="none"
+ ];
+
+ "C1" -> "C10";
+ }
Let's also say U0 wants to write the PID of a process which is
currently in C10 into "C00/cgroup.procs". U0 has write access to the
@@ -1505,12 +1545,21 @@ The limits are only applied at the peer level in the hierarchy. This means that
in the diagram below, only groups A, B, and C will influence each other, and
groups D and F will influence each other. Group G will influence nobody.
- [root]
- / | \
- A B C
- / \ |
- D F G
-
+.. kernel-render:: DOT
+ :alt: Peer hierarchy
+
+ digraph hierarchy {
+ edge [
+ arrowhead="none"
+ ];
+
+ "[root]" -> "A";
+ "[root]" -> "B";
+ "[root]" -> "C";
+ "A" -> "D";
+ "A" -> "F";
+ "B" -> "G";
+ }
So the ideal way to configure this is to set io.latency in groups A, B, and C.
Generally you do not want to set a value lower than the latency your device
--
2.17.2
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next reply other threads:[~2018-12-30 16:49 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-30 16:49 Otto Sabart [this message]
2018-12-30 17:40 ` [PATCH 1/2] doc: cgroup: use graphviz code instead of ASCII art Jonathan Corbet
2018-12-30 18:57 ` Otto Sabart
2019-01-02 15:56 ` 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=20181230164945.GA2644@personal \
--to=ottosabart@seberm.com \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tj@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.