Commit 18421863 authored by Roman Gushchin's avatar Roman Gushchin Committed by Linus Torvalds

docs: cgroup-v1: reflect the deprecation of the non-hierarchical mode

Update cgroup v1 docs after the deprecation of the non-hierarchical mode
of the memory controller.

Link: https://lkml.kernel.org/r/20201110220800.929549-3-guro@fb.comSigned-off-by: default avatarRoman Gushchin <guro@fb.com>
Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Acked-by: default avatarDavid Rientjes <rientjes@google.com>
Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent bef8620c
...@@ -219,13 +219,11 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y. ...@@ -219,13 +219,11 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y.
This is an easy way to test page migration, too. This is an easy way to test page migration, too.
9.5 mkdir/rmdir 9.5 nested cgroups
--------------- ------------------
When using hierarchy, mkdir/rmdir test should be done. Use tests like the following for testing nested cgroups::
Use tests like the following::
echo 1 >/opt/cgroup/01/memory/use_hierarchy
mkdir /opt/cgroup/01/child_a mkdir /opt/cgroup/01/child_a
mkdir /opt/cgroup/01/child_b mkdir /opt/cgroup/01/child_b
......
...@@ -77,6 +77,8 @@ Brief summary of control files. ...@@ -77,6 +77,8 @@ Brief summary of control files.
memory.soft_limit_in_bytes set/show soft limit of memory usage memory.soft_limit_in_bytes set/show soft limit of memory usage
memory.stat show various statistics memory.stat show various statistics
memory.use_hierarchy set/show hierarchical account enabled memory.use_hierarchy set/show hierarchical account enabled
This knob is deprecated and shouldn't be
used.
memory.force_empty trigger forced page reclaim memory.force_empty trigger forced page reclaim
memory.pressure_level set memory pressure notifications memory.pressure_level set memory pressure notifications
memory.swappiness set/show swappiness parameter of vmscan memory.swappiness set/show swappiness parameter of vmscan
...@@ -495,16 +497,13 @@ cgroup might have some charge associated with it, even though all ...@@ -495,16 +497,13 @@ cgroup might have some charge associated with it, even though all
tasks have migrated away from it. (because we charge against pages, not tasks have migrated away from it. (because we charge against pages, not
against tasks.) against tasks.)
We move the stats to root (if use_hierarchy==0) or parent (if We move the stats to parent, and no change on the charge except uncharging
use_hierarchy==1), and no change on the charge except uncharging
from the child. from the child.
Charges recorded in swap information is not updated at removal of cgroup. Charges recorded in swap information is not updated at removal of cgroup.
Recorded information is discarded and a cgroup which uses swap (swapcache) Recorded information is discarded and a cgroup which uses swap (swapcache)
will be charged as a new owner of it. will be charged as a new owner of it.
About use_hierarchy, see Section 6.
5. Misc. interfaces 5. Misc. interfaces
=================== ===================
...@@ -527,8 +526,6 @@ About use_hierarchy, see Section 6. ...@@ -527,8 +526,6 @@ About use_hierarchy, see Section 6.
write will still return success. In this case, it is expected that write will still return success. In this case, it is expected that
memory.kmem.usage_in_bytes == memory.usage_in_bytes. memory.kmem.usage_in_bytes == memory.usage_in_bytes.
About use_hierarchy, see Section 6.
5.2 stat file 5.2 stat file
------------- -------------
...@@ -675,31 +672,20 @@ hierarchy:: ...@@ -675,31 +672,20 @@ hierarchy::
d e d e
In the diagram above, with hierarchical accounting enabled, all memory In the diagram above, with hierarchical accounting enabled, all memory
usage of e, is accounted to its ancestors up until the root (i.e, c and root), usage of e, is accounted to its ancestors up until the root (i.e, c and root).
that has memory.use_hierarchy enabled. If one of the ancestors goes over its If one of the ancestors goes over its limit, the reclaim algorithm reclaims
limit, the reclaim algorithm reclaims from the tasks in the ancestor and the from the tasks in the ancestor and the children of the ancestor.
children of the ancestor.
6.1 Enabling hierarchical accounting and reclaim
------------------------------------------------
A memory cgroup by default disables the hierarchy feature. Support
can be enabled by writing 1 to memory.use_hierarchy file of the root cgroup::
# echo 1 > memory.use_hierarchy 6.1 Hierarchical accounting and reclaim
---------------------------------------
The feature can be disabled by::
# echo 0 > memory.use_hierarchy Hierarchical accounting is enabled by default. Disabling the hierarchical
accounting is deprecated. An attempt to do it will result in a failure
and a warning printed to dmesg.
NOTE1: For compatibility reasons writing 1 to memory.use_hierarchy will always pass::
Enabling/disabling will fail if either the cgroup already has other
cgroups created below it, or if the parent cgroup has use_hierarchy
enabled.
NOTE2: # echo 1 > memory.use_hierarchy
When panic_on_oom is set to "2", the whole system will panic in
case of an OOM event in any cgroup.
7. Soft limits 7. Soft limits
============== ==============
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment