diff --git a/docs/CGROUP_DELEGATION.md b/docs/CGROUP_DELEGATION.md index da4e38c655..d05503bc97 100644 --- a/docs/CGROUP_DELEGATION.md +++ b/docs/CGROUP_DELEGATION.md @@ -21,10 +21,10 @@ comprehensive up-to-date information about all this, particular in light of the poor implementations of the components interfacing with systemd of current container managers. -Before you read on, please make sure you read the low-level [kernel -documentation about -cgroup v2](https://www.kernel.org/doc/Documentation/cgroup-v2.txt). This -documentation then adds in the higher-level view from systemd. +Before you read on, please make sure you read the low-level kernel +documentation about the +[unified cgroup hierarchy](https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html). +This document then adds in the higher-level view from systemd. This document augments the existing documentation we already have: diff --git a/man/systemd.resource-control.xml b/man/systemd.resource-control.xml index bf7aff6b20..4c9bfcc525 100644 --- a/man/systemd.resource-control.xml +++ b/man/systemd.resource-control.xml @@ -82,10 +82,10 @@ Unified and Legacy Control Group Hierarchies - The unified control group hierarchy is the new version of kernel control group interface, see cgroup-v2.txt. Depending on the resource type, - there are differences in resource control capabilities. Also, because of interface changes, some resource types - have separate set of options on the unified hierarchy. + The unified control group hierarchy is the new version of kernel control group interface, see + Control Groups v2. + Depending on the resource type, there are differences in resource control capabilities. Also, because of + interface changes, some resource types have separate set of options on the unified hierarchy. @@ -126,11 +126,11 @@ application. Legacy control group hierarchy (see cgroups.txt), also called cgroup-v1, - doesn't allow safe delegation of controllers to unprivileged processes. If the system uses the legacy control group - hierarchy, resource control is disabled for systemd user instance, see - systemd1. - + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/">Control Groups version 1), + also called cgroup-v1, doesn't allow safe delegation of controllers to unprivileged processes. If the + system uses the legacy control group hierarchy, resource control is disabled for the systemd user + instance, see + systemd1. @@ -165,8 +165,8 @@ is used on the system. These options take an integer value and control the cpu.weight control group attribute. The allowed range is 1 to 10000. Defaults to 100. For details about this control group attribute, see cgroup-v2.txt and sched-design-CFS.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">Control Groups v2 and CFS Scheduler. The available CPU time is split up among all units within one slice relative to their CPU time weight. While StartupCPUWeight= only applies to the startup phase of the system, @@ -187,7 +187,7 @@ available on one CPU. Use values > 100% for allotting CPU time on more than one CPU. This controls the cpu.max attribute on the unified control group hierarchy and cpu.cfs_quota_us on legacy. For details about these control group attributes, see cgroup-v2.txt and Control Groups v2 and sched-bwc.txt. Example: CPUQuota=20% ensures that the executed processes will never get more than @@ -208,8 +208,8 @@ This controls the second field of cpu.max attribute on the unified control group hierarchy and cpu.cfs_period_us on legacy. For details about these control group attributes, see - cgroup-v2.txt and - sched-design-CFS.txt. + Control Groups v2 and + CFS Scheduler. Example: CPUQuotaPeriodSec=10ms to request that the CPU quota is measured in periods of 10ms. @@ -274,7 +274,7 @@ useful in order to always inherit all of the protection afforded by ancestors. This controls the memory.min control group attribute. For details about this control group attribute, see cgroup-v2.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">Control Groups v2. This setting is supported only if the unified control group hierarchy is used and disables MemoryLimit=. @@ -300,7 +300,7 @@ useful in order to always inherit all of the protection afforded by ancestors. This controls the memory.low control group attribute. For details about this control group attribute, see cgroup-v2.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">Control Groups v2. This setting is supported only if the unified control group hierarchy is used and disables MemoryLimit=. @@ -325,7 +325,7 @@ system. If assigned the special value infinity, no memory throttling is applied. This controls the memory.high control group attribute. For details about this control group attribute, see - cgroup-v2.txt. + Control Groups v2. This setting is supported only if the unified control group hierarchy is used and disables MemoryLimit=. @@ -346,7 +346,7 @@ percentage value may be specified, which is taken relative to the installed physical memory on the system. If assigned the special value infinity, no memory limit is applied. This controls the memory.max control group attribute. For details about this control group attribute, see - cgroup-v2.txt. + Control Groups v2. This setting replaces MemoryLimit=. @@ -362,7 +362,7 @@ parsed as Kilobytes, Megabytes, Gigabytes, or Terabytes (with the base 1024), respectively. If assigned the special value infinity, no swap limit is applied. This controls the memory.swap.max control group attribute. For details about this control group attribute, - see cgroup-v2.txt. + see Control Groups v2. This setting is supported only if the unified control group hierarchy is used and disables MemoryLimit=. @@ -397,10 +397,10 @@ of tasks or a percentage value that is taken relative to the configured maximum number of tasks on the system. If assigned the special value infinity, no tasks limit is applied. This controls the pids.max control group attribute. For details about this control group attribute, see - pids.txt. + Process Number Controller. + - The - system default for this setting may be controlled with + The system default for this setting may be controlled with DefaultTasksMax= in systemd-system.conf5. @@ -431,7 +431,7 @@ hierarchy is used on the system. Takes a single weight value (between 1 and 10000) to set the default block I/O weight. This controls the io.weight control group attribute, which defaults to 100. For details about this control group attribute, see cgroup-v2.txt. The available I/O + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">Control Groups v2. The available I/O bandwidth is split up among all units within one slice relative to their block I/O weight. While StartupIOWeight= only applies @@ -457,7 +457,7 @@ device of the file system of the file is determined. This controls the io.weight control group attribute, which defaults to 100. Use this option multiple times to set weights for multiple devices. For details about this control group attribute, see cgroup-v2.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">Control Groups v2. This setting replaces BlockIODeviceWeight= and disables settings prefixed with BlockIO or StartupBlockIO. @@ -479,7 +479,7 @@ "/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 5M"). This controls the io.max control group attributes. Use this option multiple times to set bandwidth limits for multiple devices. For details about this control group attribute, see cgroup-v2.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">Control Groups v2. These settings replace BlockIOReadBandwidth= and @@ -503,7 +503,7 @@ "/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 1K"). This controls the io.max control group attributes. Use this option multiple times to set IOPS limits for multiple devices. For details about this control group attribute, see cgroup-v2.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">Control Groups v2. These settings are supported only if the unified control group hierarchy is used and disable settings @@ -522,7 +522,7 @@ system of the file is determined. This controls the io.latency control group attribute. Use this option multiple times to set latency target for multiple devices. For details about this control group attribute, see cgroup-v2.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html">Control Groups v2. Implies IOAccounting=yes. @@ -697,8 +697,8 @@ (mknod), respectively. On cgroup-v1 this controls the devices.allow control group attribute. For details about this control group attribute, see devices.txt. On - cgroup-v2 this functionality is implemented using eBPF filtering. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/devices.html">Device Whitelist Controller. + In the unified cgroup hierarchy this functionality is implemented using eBPF filtering. The device node specifier is either a path to a device node in the file system, starting with /dev/, or a string starting with either char- or @@ -883,7 +883,7 @@ DeviceAllow=/dev/loop-control Assign the specified CPU time share weight to the processes executed. These options take an integer value and control the cpu.shares control group attribute. The allowed range is 2 to 262144. Defaults to 1024. For details about this control group attribute, see sched-design-CFS.txt. + url="https://www.kernel.org/doc/html/latest/scheduler/sched-design-CFS.html">CFS Scheduler. The available CPU time is split up among all units within one slice relative to their CPU time share weight. @@ -911,7 +911,7 @@ DeviceAllow=/dev/loop-control infinity, no memory limit is applied. This controls the memory.limit_in_bytes control group attribute. For details about this control group attribute, see memory.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/memory.html">Memory Resource Controller. Implies MemoryAccounting=yes. @@ -942,7 +942,7 @@ DeviceAllow=/dev/loop-control group hierarchy is used on the system. Takes a single weight value (between 10 and 1000) to set the default block I/O weight. This controls the blkio.weight control group attribute, which defaults to 500. For details about this control group attribute, see blkio-controller.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/blkio-controller.html">Block IO Controller. The available I/O bandwidth is split up among all units within one slice relative to their block I/O weight. @@ -973,7 +973,7 @@ DeviceAllow=/dev/loop-control file system of the file is determined. This controls the blkio.weight_device control group attribute, which defaults to 1000. Use this option multiple times to set weights for multiple devices. For details about this control group attribute, see blkio-controller.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/blkio-controller.html">Block IO Controller. Implies BlockIOAccounting=yes. @@ -997,7 +997,7 @@ DeviceAllow=/dev/loop-control blkio.throttle.read_bps_device and blkio.throttle.write_bps_device control group attributes. Use this option multiple times to set bandwidth limits for multiple devices. For details about these control group attributes, see blkio-controller.txt. + url="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/blkio-controller.html">Block IO Controller. Implies @@ -1027,11 +1027,7 @@ DeviceAllow=/dev/loop-control systemd.directives7, systemd.special7, The documentation for control groups and specific controllers in the Linux kernel: - cgroups.txt, - cpuacct.txt, - memory.txt, - blkio-controller.txt. - sched-bwc.txt. + Control Groups v2. diff --git a/man/systemd.xml b/man/systemd.xml index 8c8dc0bd75..3cad8141db 100644 --- a/man/systemd.xml +++ b/man/systemd.xml @@ -873,7 +873,7 @@ When specified without an argument or with a true argument, enables the usage of - unified cgroup hierarchy + unified cgroup hierarchy (a.k.a. cgroups-v2). When specified with a false argument, fall back to hybrid or full legacy cgroup hierarchy.