# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 05:44+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "cgroups" msgstr "" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "cgroups - Linux control groups" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Control groups, usually referred to as cgroups, are a Linux kernel feature " "which allow processes to be organized into hierarchical groups whose usage " "of various types of resources can then be limited and monitored. The " "kernel's cgroup interface is provided through a pseudo-filesystem called " "cgroupfs. Grouping is implemented in the core cgroup kernel code, while " "resource tracking and limits are implemented in a set of per-resource-type " "subsystems (memory, CPU, and so on)." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Terminology" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A I is a collection of processes that are bound to a set of limits " "or parameters defined via the cgroup filesystem." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A I is a kernel component that modifies the behavior of the " "processes in a cgroup. Various subsystems have been implemented, making it " "possible to do things such as limiting the amount of CPU time and memory " "available to a cgroup, accounting for the CPU time used by a cgroup, and " "freezing and resuming execution of the processes in a cgroup. Subsystems " "are sometimes also known as I (or simply, controllers)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The cgroups for a controller are arranged in a I. This hierarchy " "is defined by creating, removing, and renaming subdirectories within the " "cgroup filesystem. At each level of the hierarchy, attributes (e.g., " "limits) can be defined. The limits, control, and accounting provided by " "cgroups generally have effect throughout the subhierarchy underneath the " "cgroup where the attributes are defined. Thus, for example, the limits " "placed on a cgroup at a higher level in the hierarchy cannot be exceeded by " "descendant cgroups." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups version 1 and version 2" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The initial release of the cgroups implementation was in Linux 2.6.24. Over " "time, various cgroup controllers have been added to allow the management of " "various types of resources. However, the development of these controllers " "was largely uncoordinated, with the result that many inconsistencies arose " "between controllers and management of the cgroup hierarchies became rather " "complex. A longer description of these problems can be found in the kernel " "source file I (or I in Linux 4.17 and earlier)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Because of the problems with the initial cgroups implementation (cgroups " "version 1), starting in Linux 3.10, work began on a new, orthogonal " "implementation to remedy these problems. Initially marked experimental, and " "hidden behind the I<-o\\ __DEVEL__sane_behavior> mount option, the new " "version (cgroups version 2) was eventually made official with the release " "of Linux 4.5. Differences between the two versions are described in the " "text below. The file I, present in cgroups v1, is a " "relic of this mount option. The file always reports \"0\" and is only " "retained for backward compatibility." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Although cgroups v2 is intended as a replacement for cgroups v1, the older " "system continues to exist (and for compatibility reasons is unlikely to be " "removed). Currently, cgroups v2 implements only a subset of the controllers " "available in cgroups v1. The two systems are implemented so that both v1 " "controllers and v2 controllers can be mounted on the same system. Thus, for " "example, it is possible to use those controllers that are supported under " "version 2, while also using version 1 controllers where version 2 does not " "yet support those controllers. The only restriction here is that a " "controller can't be simultaneously employed in both a cgroups v1 hierarchy " "and in the cgroups v2 hierarchy." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "CGROUPS VERSION 1" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Under cgroups v1, each controller may be mounted against a separate cgroup " "filesystem that provides its own hierarchical organization of the processes " "on the system. It is also possible to comount multiple (or even all) " "cgroups v1 controllers against the same cgroup filesystem, meaning that the " "comounted controllers manage the same hierarchical organization of processes." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For each mounted hierarchy, the directory tree mirrors the control group " "hierarchy. Each control group is represented by a directory, with each of " "its child control cgroups represented as a child directory. For instance, " "I represents control group I<1.session>, which is a " "child of cgroup I, which is a child of I. Under each cgroup " "directory is a set of files which can be read or written to, reflecting " "resource limits and a few general cgroup properties." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Tasks (threads) versus processes" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In cgroups v1, a distinction is drawn between I and I. In " "this view, a process can consist of multiple tasks (more commonly called " "threads, from a user-space perspective, and called such in the remainder of " "this man page). In cgroups v1, it is possible to independently manipulate " "the cgroup memberships of the threads in a process." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The cgroups v1 ability to split threads across different cgroups caused " "problems in some cases. For example, it made no sense for the I " "controller, since all of the threads of a process share a single address " "space. Because of these problems, the ability to independently manipulate " "the cgroup memberships of the threads in a process was removed in the " "initial cgroups v2 implementation, and subsequently restored in a more " "limited form (see the discussion of \"thread mode\" below)." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Mounting v1 controllers" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The use of cgroups requires a kernel built with the B " "option. In addition, each of the v1 controllers has an associated " "configuration option that must be set in order to employ that controller." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In order to use a v1 controller, it must be mounted against a cgroup " "filesystem. The usual place for such mounts is under a B(5) " "filesystem mounted at I. Thus, one might mount the I " "controller as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount -t cgroup -o cpu none /sys/fs/cgroup/cpu\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "It is possible to comount multiple controllers against the same hierarchy. " "For example, here the I and I controllers are comounted " "against a single hierarchy:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount -t cgroup -o cpu,cpuacct none /sys/fs/cgroup/cpu,cpuacct\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Comounting controllers has the effect that a process is in the same cgroup " "for all of the comounted controllers. Separately mounting controllers " "allows a process to be in cgroup I for one controller while being in " "I for another." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "It is possible to comount all v1 controllers against the same hierarchy:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount -t cgroup -o all cgroup /sys/fs/cgroup\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "(One can achieve the same result by omitting I<-o all>, since it is the " "default if no controllers are explicitly specified.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "It is not possible to mount the same controller against multiple cgroup " "hierarchies. For example, it is not possible to mount both the I and " "I controllers against one hierarchy, and to mount the I " "controller alone against another hierarchy. It is possible to create " "multiple mount with exactly the same set of comounted controllers. However, " "in this case all that results is multiple mount points providing a view of " "the same hierarchy." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Note that on many systems, the v1 controllers are automatically mounted " "under I; in particular, B(1) automatically creates " "such mounts." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Unmounting v1 controllers" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A mounted cgroup filesystem can be unmounted using the B(8) " "command, as in the following example:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "umount /sys/fs/cgroup/pids\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I: a cgroup filesystem is unmounted only if it is not busy, " "that is, it has no child cgroups. If this is not the case, then the only " "effect of the B(8) is to make the mount invisible. Thus, to ensure " "that the mount is really removed, one must first remove all child cgroups, " "which in turn can be done only after all member processes have been moved " "from those cgroups to the root cgroup." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups version 1 controllers" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Each of the cgroups version 1 controllers is governed by a kernel " "configuration option (listed below). Additionally, the availability of the " "cgroups feature is governed by the B kernel configuration " "option." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.24; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Cgroups can be guaranteed a minimum number of \"CPU shares\" when a system " "is busy. This does not limit a cgroup's CPU usage if the CPUs are not " "busy. For further information, see I (or I in Linux 5.2 " "and earlier)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In Linux 3.2, this controller was extended to provide CPU \"bandwidth\" " "control. If the kernel is configured with B, then " "within each scheduling period (defined via a file in the cgroup directory), " "it is possible to define an upper limit on the CPU time allocated to the " "processes in a cgroup. This upper limit applies even if there is no other " "competition for the CPU. Further information can be found in the kernel " "source file I (or I in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.24; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This provides accounting for CPU usage by groups of processes." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.24; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This cgroup can be used to bind the processes in a cgroup to a specified set " "of CPUs and NUMA nodes." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.25; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The memory controller supports reporting and limiting of process memory, " "kernel memory, and swap used by cgroups." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I " "in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.26; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This supports controlling which processes may create (mknod) devices as well " "as open them for reading or writing. The policies may be specified as allow-" "lists and deny-lists. Hierarchy is enforced, so new rules must not violate " "existing rules for the target or ancestor cgroups." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.28; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I cgroup can suspend and restore (resume) all processes in a " "cgroup. Freezing a cgroup I also causes its children, for example, " "processes in I, to be frozen." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.29; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This places a classid, specified for the cgroup, on network packets created " "by a cgroup. These classids can then be used in firewall rules, as well as " "used to shape traffic using B(8). This applies only to packets leaving " "the cgroup, not to traffic arriving at the cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.33; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I cgroup controls and limits access to specified block devices by " "applying IO control in the form of throttling and upper limits against leaf " "nodes and intermediate nodes in the storage hierarchy." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Two policies are available. The first is a proportional-weight time-based " "division of disk implemented with CFQ. This is in effect for leaf nodes " "using CFQ. The second is a throttling policy which specifies upper I/O rate " "limits on a device." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.39; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This controller allows I monitoring of the set of processes grouped in " "a cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Further information can be found in the kernel source files" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 3.3; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This allows priorities to be specified, per network interface, for cgroups." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 3.5; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This supports limiting the use of huge pages by cgroups." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.3; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This controller permits limiting the number of process that may be created " "in a cgroup (and its descendants)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in " "Linux 5.2 and earlier)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.11; B)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The RDMA controller permits limiting the use of RDMA/IB-specific resources " "per cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Further information can be found in the kernel source file I (or I in " "Linux 5.2 and earlier)." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Creating cgroups and moving processes" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A cgroup filesystem initially contains a single root cgroup, '/', which all " "processes belong to. A new cgroup is created by creating a directory in the " "cgroup filesystem:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mkdir /sys/fs/cgroup/cpu/cg1\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This creates a new empty cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A process may be moved to this cgroup by writing its PID into the cgroup's " "I file:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "echo $$ E /sys/fs/cgroup/cpu/cg1/cgroup.procs\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Only one PID at a time should be written to this file." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Writing the value 0 to a I file causes the writing process to " "be moved to the corresponding cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When writing a PID into the I, all threads in the process are " "moved into the new cgroup at once." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Within a hierarchy, a process can be a member of exactly one cgroup. " "Writing a process's PID to a I file automatically removes it " "from the cgroup of which it was previously a member." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I file can be read to obtain a list of the processes that " "are members of a cgroup. The returned list of PIDs is not guaranteed to be " "in order. Nor is it guaranteed to be free of duplicates. (For example, a " "PID may be recycled while reading from the list.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In cgroups v1, an individual thread can be moved to another cgroup by " "writing its thread ID (i.e., the kernel thread ID returned by B(2) " "and B(2)) to the I file in a cgroup directory. This file " "can be read to discover the set of threads that are members of the cgroup." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Removing cgroups" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "To remove a cgroup, it must first have no child cgroups and contain no " "(nonzombie) processes. So long as that is the case, one can simply remove " "the corresponding directory pathname. Note that files in a cgroup directory " "cannot and need not be removed." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups v1 release notification" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Two files can be used to determine whether the kernel provides notifications " "when a cgroup becomes empty. A cgroup is considered to be empty when it " "contains no child cgroups and no member processes." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A special file in the root directory of each cgroup hierarchy, " "I, can be used to register the pathname of a program that may " "be invoked when a cgroup in the hierarchy becomes empty. The pathname of " "the newly empty cgroup (relative to the cgroup mount point) is provided as " "the sole command-line argument when the I program is " "invoked. The I program might remove the cgroup directory, or " "perhaps repopulate it with a process." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The default value of the I file is empty, meaning that no " "release agent is invoked." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The content of the I file can also be specified via a mount " "option when the cgroup filesystem is mounted:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount -o release_agent=pathname ...\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Whether or not the I program is invoked when a particular " "cgroup becomes empty is determined by the value in the I " "file in the corresponding cgroup directory. If this file contains the value " "0, then the I program is not invoked. If it contains the " "value 1, the I program is invoked. The default value for " "this file in the root cgroup is 0. At the time when a new cgroup is " "created, the value in this file is inherited from the corresponding file in " "the parent cgroup." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroup v1 named hierarchies" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In cgroups v1, it is possible to mount a cgroup hierarchy that has no " "attached controllers:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount -t cgroup -o none,name=somename none /some/mount/point\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Multiple instances of such hierarchies can be mounted; each hierarchy must " "have a unique name. The only purpose of such hierarchies is to track " "processes. (See the discussion of release notification below.) An example " "of this is the I cgroup hierarchy that is used by " "B(1) to track services and user sessions." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Since Linux 5.0, the I kernel boot option (described below) " "can be used to disable cgroup v1 named hierarchies, by specifying " "I." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "CGROUPS VERSION 2" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In cgroups v2, all mounted controllers reside in a single unified " "hierarchy. While (different) controllers may be simultaneously mounted " "under the v1 and v2 hierarchies, it is not possible to mount the same " "controller simultaneously under both the v1 and the v2 hierarchies." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The new behaviors in cgroups v2 are summarized here, and in some cases " "elaborated in the following subsections." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "\\[bu]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Cgroups v2 provides a unified hierarchy against which all controllers are " "mounted." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "\"Internal\" processes are not permitted. With the exception of the root " "cgroup, processes may reside only in leaf nodes (cgroups that do not " "themselves contain child cgroups). The details are somewhat more subtle " "than this, and are described below." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Active cgroups must be specified via the files I and " "I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I file has been removed. In addition, the I file that is employed by the I controller has been " "removed." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An improved mechanism for notification of empty cgroups is provided by the " "I file." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For more changes, see the I file in " "the kernel source (or I in Linux 4.17 and " "earlier)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Some of the new behaviors listed above saw subsequent modification with the " "addition in Linux 4.14 of \"thread mode\" (described below)." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups v2 unified hierarchy" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In cgroups v1, the ability to mount different controllers against different " "hierarchies was intended to allow great flexibility for application design. " "In practice, though, the flexibility turned out to be less useful than " "expected, and in many cases added complexity. Therefore, in cgroups v2, all " "available controllers are mounted against a single hierarchy. The available " "controllers are automatically mounted, meaning that it is not necessary (or " "possible) to specify the controllers when mounting the cgroup v2 filesystem " "using a command such as the following:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "mount -t cgroup2 none /mnt/cgroup2\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A cgroup v2 controller is available only if it is not currently in use via a " "mount against a cgroup v1 hierarchy. Or, to put things another way, it is " "not possible to employ the same controller against both a v1 hierarchy and " "the unified v2 hierarchy. This means that it may be necessary first to " "unmount a v1 controller (as described above) before that controller is " "available in v2. Since B(1) makes heavy use of some v1 " "controllers by default, it can in some cases be simpler to boot the system " "with selected v1 controllers disabled. To do this, specify the " "I option on the kernel boot command line; I is a " "comma-separated list of the names of the controllers to disable, or the word " "I to disable all v1 controllers. (This situation is correctly handled " "by B(1), which falls back to operating without the specified " "controllers.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Note that on many modern systems, B(1) automatically mounts the " "I filesystem at I during the boot process." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups v2 mount options" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following options (I) can be specified when mounting the " "group v2 filesystem:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.15)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Treat cgroup namespaces as delegation boundaries. For details, see below." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 5.2)" msgstr "" #. commit 9852ae3fe5293264f01c49f2571ef7688f7823ce #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I should show statistics only for the cgroup itself, and " "not for any descendant cgroups. This was the behavior before Linux 5.2. " "Starting in Linux 5.2, the default behavior is to include statistics for " "descendant cgroups in I, and this mount option can be used to " "revert to the legacy behavior. This option is system wide and can be set on " "mount or modified through remount only from the initial mount namespace; it " "is silently ignored in noninitial namespaces." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups v2 controllers" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following controllers, documented in the kernel source file " "I (or I in Linux 4.17 and earlier), are supported in cgroups version 2:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.15)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is the successor to the version 1 I and I controllers." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 5.0)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is the successor of the version 1 I controller." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 5.2)" msgstr "" #. commit 76f969e8948d82e78e1bc4beb6b9465908e74873 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is the successor of the version 1 I controller." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 5.6)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is the successor of the version 1 I controller." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.5)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is the successor of the version 1 I controller." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.5)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is the successor of the version 1 I controller." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.11)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is the same as the version 1 I controller." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.5)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is the same as the version 1 I controller." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.11)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is the same as the version 1 I controller." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "There is no direct equivalent of the I and I controllers " "from cgroups version 1. Instead, support has been added to B(8) " "to allow eBPF filters that hook on cgroup v2 pathnames to make decisions " "about network traffic on a per-cgroup basis." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The v2 I controller provides no interface files; instead, device " "control is gated by attaching an eBPF (B) program to a " "v2 cgroup." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups v2 subtree control" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Each cgroup in the v2 hierarchy contains the following two files:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This read-only file exposes a list of the controllers that are I " "in this cgroup. The contents of this file match the contents of the " "I file in the parent cgroup." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is a list of controllers that are I (I) in the " "cgroup. The set of controllers in this file is a subset of the set in the " "I of this cgroup. The set of active controllers is " "modified by writing strings to this file containing space-delimited " "controller names, each preceded by '+' (to enable a controller) or '-' (to " "disable a controller), as in the following example:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "echo \\[aq]+pids -memory\\[aq] E x/y/cgroup.subtree_control\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An attempt to enable a controller that is not present in I leads to an B error when writing to the I file." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Because the list of controllers in I is a subset of " "those I, a controller that has been disabled in one " "cgroup in the hierarchy can never be re-enabled in the subtree below that " "cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A cgroup's I file determines the set of controllers " "that are exercised in the I cgroups. When a controller (e.g., " "I) is present in the I file of a parent " "cgroup, then the corresponding controller-interface files (e.g., I) are automatically created in the children of that cgroup and can be " "used to exert resource control in the child cgroups." msgstr "" #. type: SS #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "Cgroups v2 \\[dq]no internal processes\\[dq] rule" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Cgroups v2 enforces a so-called \"no internal processes\" rule. Roughly " "speaking, this rule means that, with the exception of the root cgroup, " "processes may reside only in leaf nodes (cgroups that do not themselves " "contain child cgroups). This avoids the need to decide how to partition " "resources between processes which are members of cgroup A and processes in " "child cgroups of A." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For instance, if cgroup I exists, then a process may reside in I, but not in I. This is to avoid an ambiguity in cgroups v1 " "with respect to the delegation of resources between processes in I and " "its child cgroups. The recommended approach in cgroups v2 is to create a " "subdirectory called I for any nonleaf cgroup which should contain " "processes, but no child cgroups. Thus, processes which previously would " "have gone into I would now go into I. This has the " "advantage of making explicit the relationship between processes in I and I's other children." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The \"no internal processes\" rule is in fact more subtle than stated " "above. More precisely, the rule is that a (nonroot) cgroup can't both (1) " "have member processes, and (2) distribute resources into child " "cgroups\\[em]that is, have a nonempty I file. Thus, " "it I possible for a cgroup to have both member processes and child " "cgroups, but before controllers can be enabled for that cgroup, the member " "processes must be moved out of the cgroup (e.g., perhaps into the child " "cgroups)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "With the Linux 4.14 addition of \"thread mode\" (described below), the \"no " "internal processes\" rule has been relaxed in some cases." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups v2 cgroup.events file" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Each nonroot cgroup in the v2 hierarchy contains a read-only file, I, whose contents are key-value pairs (delimited by newline " "characters, with the key and value separated by spaces) providing state " "information about the cgroup:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B\n" "populated 1\n" "frozen 0\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The following keys may appear in this file:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The value of this key is either 1, if this cgroup or any of its descendants " "has member processes, or otherwise 0." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 5.2)" msgstr "" #. commit 76f969e8948d82e78e1bc4beb6b9465908e7487 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The value of this key is 1 if this cgroup is currently frozen, or 0 if it is " "not." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I file can be monitored, in order to receive notification " "when the value of one of its keys changes. Such monitoring can be done " "using B(7), which notifies changes as B events, or " "B(2), which notifies changes by returning the B and " "B bits in the I field." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroup v2 release notification" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Cgroups v2 provides a new mechanism for obtaining notification when a cgroup " "becomes empty. The cgroups v1 I and I " "files are removed, and replaced by the I key in the I file. This key either has the value 0, meaning that the cgroup (and " "its descendants) contain no (nonzombie) member processes, or 1, meaning " "that the cgroup (or one of its descendants) contains member processes." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The cgroups v2 release-notification mechanism offers the following " "advantages over the cgroups v1 I mechanism:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "It allows for cheaper notification, since a single process can monitor " "multiple I files (using the techniques described earlier). " "By contrast, the cgroups v1 mechanism requires the expense of creating a " "process for each notification." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Notification for different cgroup subhierarchies can be delegated to " "different processes. By contrast, the cgroups v1 mechanism allows only one " "release agent for an entire hierarchy." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups v2 cgroup.stat file" msgstr "" #. commit ec39225cca42c05ac36853d11d28f877fde5c42e #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Each cgroup in the v2 hierarchy contains a read-only I file " "(first introduced in Linux 4.14) that consists of lines containing key-" "value pairs. The following keys currently appear in this file:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is the total number of visible (i.e., living) descendant cgroups " "underneath this cgroup." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is the total number of dying descendant cgroups underneath this " "cgroup. A cgroup enters the dying state after being deleted. It remains in " "that state for an undefined period (which will depend on system load) while " "resources are freed before the cgroup is destroyed. Note that the presence " "of some cgroups in the dying state is normal, and is not indicative of any " "problem." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A process can't be made a member of a dying cgroup, and a dying cgroup can't " "be brought back to life." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Limiting the number of descendant cgroups" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Each cgroup in the v2 hierarchy contains the following files, which can be " "used to view and set limits on the number of descendant cgroups under that " "cgroup:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.14)" msgstr "" #. commit 1a926e0bbab83bae8207d05a533173425e0496d1 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This file defines a limit on the depth of nesting of descendant cgroups. A " "value of 0 in this file means that no descendant cgroups can be created. An " "attempt to create a descendant whose nesting level exceeds the limit fails " "(I(2) fails with the error B)." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Writing the string I<\\[dq]max\\[dq]> to this file means that no limit is " "imposed. The default value in this file is I<\\[dq]max\\[dq]>." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.14)" msgstr "" #. commit 1a926e0bbab83bae8207d05a533173425e0496d1 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This file defines a limit on the number of live descendant cgroups that this " "cgroup may have. An attempt to create more descendants than allowed by the " "limit fails (I(2) fails with the error B)." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "CGROUPS DELEGATION: DELEGATING A HIERARCHY TO A LESS PRIVILEGED USER" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the context of cgroups, delegation means passing management of some " "subtree of the cgroup hierarchy to a nonprivileged user. Cgroups v1 " "provides support for delegation based on file permissions in the cgroup " "hierarchy but with less strict containment rules than v2 (as noted below). " "Cgroups v2 supports delegation with containment by explicit design. The " "focus of the discussion in this section is on delegation in cgroups v2, with " "some differences for cgroups v1 noted along the way." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Some terminology is required in order to describe delegation. A " "I is a privileged user (i.e., root) who owns a parent cgroup. A " "I is a nonprivileged user who will be granted the permissions " "needed to manage some subhierarchy under that parent cgroup, known as the " "I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "To perform delegation, the delegater makes certain directories and files " "writable by the delegatee, typically by changing the ownership of the " "objects to be the user ID of the delegatee. Assuming that we want to " "delegate the hierarchy rooted at (say) I and that there are not " "yet any child cgroups under that cgroup, the ownership of the following is " "changed to the user ID of the delegatee:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Changing the ownership of the root of the subtree means that any new cgroups " "created under the subtree (and the files they contain) will also be owned " "by the delegatee." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Changing the ownership of this file means that the delegatee can move " "processes into the root of the delegated subtree." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (cgroups v2 only)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Changing the ownership of this file means that the delegatee can enable " "controllers (that are present in I) in order " "to further redistribute resources at lower levels in the subtree. (As an " "alternative to changing the ownership of this file, the delegater might " "instead add selected controllers to this file.)" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (cgroups v2 only)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Changing the ownership of this file is necessary if a threaded subtree is " "being delegated (see the description of \"thread mode\", below). This " "permits the delegatee to write thread IDs to the file. (The ownership of " "this file can also be changed when delegating a domain subtree, but " "currently this serves no purpose, since, as described below, it is not " "possible to move a thread between domain cgroups by writing its thread ID to " "the I file.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In cgroups v1, the corresponding file that should instead be delegated is " "the I file." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The delegater should I change the ownership of any of the controller " "interfaces files (e.g., I, I) in I. Those " "files are used from the next level above the delegated subtree in order to " "distribute resources into the subtree, and the delegatee should not have " "permission to change the resources that are distributed into the delegated " "subtree." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "See also the discussion of the I file in NOTES " "for information about further delegatable files in cgroups v2." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "After the aforementioned steps have been performed, the delegatee can create " "child cgroups within the delegated subtree (the cgroup subdirectories and " "the files they contain will be owned by the delegatee) and move processes " "between cgroups in the subtree. If some controllers are present in " "I, or the ownership of that file was passed " "to the delegatee, the delegatee can also control the further redistribution " "of the corresponding resources into the delegated subtree." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroups v2 delegation: nsdelegate and cgroup namespaces" msgstr "" #. commit 5136f6365ce3eace5a926e10f16ed2a233db5ba9 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Starting with Linux 4.13, there is a second way to perform cgroup delegation " "in the cgroups v2 hierarchy. This is done by mounting or remounting the " "cgroup v2 filesystem with the I mount option. For example, if " "the cgroup v2 filesystem has already been mounted, we can remount it with " "the I option as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "mount -t cgroup2 -o remount,nsdelegate \\e\n" " none /sys/fs/cgroup/unified\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The effect of this mount option is to cause cgroup namespaces to " "automatically become delegation boundaries. More specifically, the " "following restrictions apply for processes inside the cgroup namespace:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Writes to controller interface files in the root directory of the namespace " "will fail with the error B. Processes inside the cgroup namespace " "can still write to delegatable files in the root directory of the cgroup " "namespace such as I and I, and can " "create subhierarchy underneath the root directory." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Attempts to migrate processes across the namespace boundary are denied (with " "the error B). Processes inside the cgroup namespace can still " "(subject to the containment rules described below) move processes between " "cgroups I the subhierarchy under the namespace root." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The ability to define cgroup namespaces as delegation boundaries makes " "cgroup namespaces more useful. To understand why, suppose that we already " "have one cgroup hierarchy that has been delegated to a nonprivileged user, " "I, using the older delegation technique described above. Suppose " "further that I wanted to further delegate a subhierarchy under the " "existing delegated hierarchy. (For example, the delegated hierarchy might " "be associated with an unprivileged container run by I.) Even if a " "cgroup namespace was employed, because both hierarchies are owned by the " "unprivileged user I, the following illegitimate actions could be " "performed:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A process in the inferior hierarchy could change the resource controller " "settings in the root directory of that hierarchy. (These resource " "controller settings are intended to allow control to be exercised from the " "I cgroup; a process inside the child cgroup should not be allowed to " "modify them.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A process inside the inferior hierarchy could move processes into and out of " "the inferior hierarchy if the cgroups in the superior hierarchy were somehow " "visible." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Employing the I mount option prevents both of these " "possibilities." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I mount option only has an effect when performed in the " "initial mount namespace; in other mount namespaces, the option is silently " "ignored." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I: On some systems, B(1) automatically mounts the cgroup v2 " "filesystem. In order to experiment with the I operation, it may " "be useful to boot the kernel with the following command-line options:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "cgroup_no_v1=all systemd.legacy_systemd_cgroup_controller\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "These options cause the kernel to boot with the cgroups v1 controllers " "disabled (meaning that the controllers are available in the v2 hierarchy), " "and tells B(1) not to mount and use the cgroup v2 hierarchy, so " "that the v2 hierarchy can be manually mounted with the desired options after " "boot-up." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Cgroup delegation containment rules" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Some delegation I ensure that the delegatee can move " "processes between cgroups within the delegated subtree, but can't move " "processes from outside the delegated subtree into the subtree or vice " "versa. A nonprivileged process (i.e., the delegatee) can write the PID of a " "\"target\" process into a I file only if all of the following " "are true:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The writer has write permission on the I file in the " "destination cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The writer has write permission on the I file in the nearest " "common ancestor of the source and destination cgroups. Note that in some " "cases, the nearest common ancestor may be the source or destination cgroup " "itself. This requirement is not enforced for cgroups v1 hierarchies, with " "the consequence that containment in v1 is less strict than in v2. (For " "example, in cgroups v1 the user that owns two distinct delegated " "subhierarchies can move a process between the hierarchies.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If the cgroup v2 filesystem was mounted with the I option, the " "writer must be able to see the source and destination cgroups from its " "cgroup namespace." msgstr "" #. commit 576dd464505fc53d501bb94569db76f220104d28 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In cgroups v1: the effective UID of the writer (i.e., the delegatee) matches " "the real user ID or the saved set-user-ID of the target process. Before " "Linux 4.11, this requirement also applied in cgroups v2 (This was a " "historical requirement inherited from cgroups v1 that was later deemed " "unnecessary, since the other rules suffice for containment in cgroups v2.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I: one consequence of these delegation containment rules is that the " "unprivileged delegatee can't place the first process into the delegated " "subtree; instead, the delegater must place the first process (a process " "owned by the delegatee) into the delegated subtree." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "CGROUPS VERSION 2 THREAD MODE" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Among the restrictions imposed by cgroups v2 that were not present in " "cgroups v1 are the following:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I: all of the threads of a process must be in " "the same cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I: a cgroup can't both have member processes and " "exercise controllers on child cgroups." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Both of these restrictions were added because the lack of these restrictions " "had caused problems in cgroups v1. In particular, the cgroups v1 ability to " "allow thread-level granularity for cgroup membership made no sense for some " "controllers. (A notable example was the I controller: since threads " "share an address space, it made no sense to split threads across different " "I cgroups.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Notwithstanding the initial design decision in cgroups v2, there were use " "cases for certain controllers, notably the I controller, for which " "thread-level granularity of control was meaningful and useful. To " "accommodate such use cases, Linux 4.14 added I for cgroups v2." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Thread mode allows the following:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The creation of I in which the threads of a process may " "be spread across cgroups inside the tree. (A threaded subtree may contain " "multiple multithreaded processes.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The concept of I, which can distribute resources " "across the cgroups in a threaded subtree." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A relaxation of the \"no internal processes rule\", so that, within a " "threaded subtree, a cgroup can both contain member threads and exercise " "resource control over child cgroups." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "With the addition of thread mode, each nonroot cgroup now contains a new " "file, I, that exposes, and in some circumstances can be used to " "change, the \"type\" of a cgroup. This file contains one of the following " "type values:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is a normal v2 cgroup that provides process-granularity control. If a " "process is a member of this cgroup, then all threads of the process are (by " "definition) in the same cgroup. This is the default cgroup type, and " "provides the same behavior that was provided for cgroups in the initial " "cgroups v2 implementation." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This cgroup is a member of a threaded subtree. Threads can be added to this " "cgroup, and controllers can be enabled for the cgroup." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is a domain cgroup that serves as the root of a threaded subtree. This " "cgroup type is also known as \"threaded root\"." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "This is a cgroup inside a threaded subtree that is in an \"invalid\" state. " "Processes can't be added to the cgroup, and controllers can't be enabled for " "the cgroup. The only thing that can be done with this cgroup (other than " "deleting it) is to convert it to a I cgroup by writing the string " "I<\\[dq]threaded\\[dq]> to the I file." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The rationale for the existence of this \"interim\" type during the creation " "of a threaded subtree (rather than the kernel simply immediately converting " "all cgroups under the threaded root to the type I) is to allow " "for possible future extensions to the thread mode model" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Threaded versus domain controllers" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "With the addition of threads mode, cgroups v2 now distinguishes two types of " "resource controllers:" msgstr "" #. In the kernel source, look for ".threaded[ \t]*= true" in #. initializations of struct cgroup_subsys #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I controllers: these controllers support thread-granularity for " "resource control and can be enabled inside threaded subtrees, with the " "result that the corresponding controller-interface files appear inside the " "cgroups in the threaded subtree. As at Linux 4.19, the following " "controllers are threaded: I, I, and I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I controllers: these controllers support only process granularity " "for resource control. From the perspective of a domain controller, all " "threads of a process are always in the same cgroup. Domain controllers " "can't be enabled inside a threaded subtree." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Creating a threaded subtree" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "There are two pathways that lead to the creation of a threaded subtree. The " "first pathway proceeds as follows:" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(1)" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "We write the string I<\\[dq]threaded\\[dq]> to the I file of a " "cgroup I that currently has the type I. This has the following " "effects:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The type of the cgroup I becomes I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The type of the parent cgroup, I, becomes I. The parent " "cgroup is the root of a threaded subtree (also known as the \"threaded " "root\")." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "All other cgroups under I that were not already of type I " "(because they were inside already existing threaded subtrees under the new " "threaded root) are converted to type I. Any subsequently " "created cgroups under I will also have the type I." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "(2)" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "We write the string I<\\[dq]threaded\\[dq]> to each of the I " "cgroups under I, in order to convert them to the type I. As a " "consequence of this step, all threads under the threaded root now have the " "type I and the threaded subtree is now fully usable. The " "requirement to write I<\\[dq]threaded\\[dq]> to each of these cgroups is " "somewhat cumbersome, but allows for possible future extensions to the thread-" "mode model." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The second way of creating a threaded subtree is as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In an existing cgroup, I, that currently has the type I, we (1.1) " "enable one or more threaded controllers and (1.2) make a process a member of " "I. (These two steps can be done in either order.) This has the " "following consequences:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The type of I becomes I." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "All of the descendant cgroups of I that were not already of type " "I are converted to type I." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "As before, we make the threaded subtree usable by writing the string " "I<\\[dq]threaded\\[dq]> to each of the I cgroups under I, " "in order to convert them to the type I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "One of the consequences of the above pathways to creating a threaded subtree " "is that the threaded root cgroup can be a parent only to I (and " "I) cgroups. The threaded root cgroup can't be a parent of " "a I cgroups, and a I cgroup can't have a sibling that is a " "I cgroup." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Using a threaded subtree" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Within a threaded subtree, threaded controllers can be enabled in each " "subgroup whose type has been changed to I; upon doing so, the " "corresponding controller interface files appear in the children of that " "cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A process can be moved into a threaded subtree by writing its PID to the " "I file in one of the cgroups inside the tree. This has the " "effect of making all of the threads in the process members of the " "corresponding cgroup and makes the process a member of the threaded " "subtree. The threads of the process can then be spread across the threaded " "subtree by writing their thread IDs (see B(2)) to the I files in different cgroups inside the subtree. The threads of a " "process must all reside in the same threaded subtree." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "As with writing to I, some containment rules apply when " "writing to the I file:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The writer must have write permission on the cgroup.threads file in the " "destination cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The writer must have write permission on the I file in the " "common ancestor of the source and destination cgroups. (In some cases, the " "common ancestor may be the source or destination cgroup itself.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The source and destination cgroups must be in the same threaded subtree. " "(Outside a threaded subtree, an attempt to move a thread by writing its " "thread ID to the I file in a different I cgroup " "fails with the error B.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I file is present in each cgroup (including I " "cgroups) and can be read in order to discover the set of threads that is " "present in the cgroup. The set of thread IDs obtained when reading this " "file is not guaranteed to be ordered or free of duplicates." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I file in the threaded root shows the PIDs of all " "processes that are members of the threaded subtree. The I " "files in the other cgroups in the subtree are not readable." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Domain controllers can't be enabled in a threaded subtree; no controller-" "interface files appear inside the cgroups underneath the threaded root. " "From the point of view of a domain controller, threaded subtrees are " "invisible: a multithreaded process inside a threaded subtree appears to a " "domain controller as a process that resides in the threaded root cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Within a threaded subtree, the \"no internal processes\" rule does not " "apply: a cgroup can both contain member processes (or thread) and exercise " "controllers on child cgroups." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Rules for writing to cgroup.type and creating threaded subtrees" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A number of rules apply when writing to the I file:" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "Only the string I<\\[dq]threaded\\[dq]> may be written. In other words, the " "only explicit transition that is possible is to convert a I cgroup " "to type I." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "The effect of writing I<\\[dq]threaded\\[dq]> depends on the current value " "in I, as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I or I: start the creation of a threaded subtree " "(whose root is the parent of this cgroup) via the first of the pathways " "described above;" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I: convert this cgroup (which is inside a threaded " "subtree) to a usable (i.e., I) state;" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I: no effect (a \"no-op\")." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "We can't write to a I file if the parent's type is I. In other words, the cgroups of a threaded subtree must be " "converted to the I state in a top-down manner." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "There are also some constraints that must be satisfied in order to create a " "threaded subtree rooted at the cgroup I:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "There can be no member processes in the descendant cgroups of I. (The " "cgroup I can itself have member processes.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "No domain controllers may be enabled in I's I " "file." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "If any of the above constraints is violated, then an attempt to write " "I<\\[dq]threaded\\[dq]> to a I file fails with the error " "B." msgstr "" #. type: SS #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "The \\[dq]domain threaded\\[dq] cgroup type" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "According to the pathways described above, the type of a cgroup can change " "to I in either of the following cases:" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "The string I<\\[dq]threaded\\[dq]> is written to a child cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A threaded controller is enabled inside the cgroup and a process is made a " "member of the cgroup." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A I cgroup, I, can revert to the type I if the " "above conditions no longer hold true\\[em]that is, if all I child " "cgroups of I are removed and either I no longer has threaded " "controllers enabled or no longer has member processes." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "When a I cgroup I reverts to the type I:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "All I descendants of I that are not in lower-level " "threaded subtrees revert to the type I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The root cgroups in any lower-level threaded subtrees revert to the type " "I." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Exceptions for the root cgroup" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "The root cgroup of the v2 hierarchy is treated exceptionally: it can be the " "parent of both I and I cgroups. If the string " "I<\\[dq]threaded\\[dq]> is written to the I file of one of the " "children of the root cgroup, then" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The type of that cgroup becomes I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The type of any descendants of that cgroup that are not part of lower-level " "threaded subtrees changes to I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Note that in this case, there is no cgroup whose type becomes I. (Notionally, the root cgroup can be considered as the threaded " "root for the cgroup whose type was changed to I.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The aim of this exceptional treatment for the root cgroup is to allow a " "threaded cgroup that employs the I controller to be placed as high as " "possible in the hierarchy, so as to minimize the (small) cost of traversing " "the cgroup hierarchy." msgstr "" #. type: SS #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed #, no-wrap msgid "The cgroups v2 \\[dq]cpu\\[dq] controller and realtime threads" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-rawhide opensuse-tumbleweed msgid "" "As at Linux 4.19, the cgroups v2 I controller does not support control " "of realtime threads (specifically threads scheduled under any of the " "policies B, B, described B; see " "B(7)). Therefore, the I controller can be enabled in the root " "cgroup only if all realtime threads are in the root cgroup. (If there are " "realtime threads in nonroot cgroups, then a B(2) of the string " "I<\\[dq]+cpu\\[dq]> to the I file fails with the " "error B.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On some systems, B(1) places certain realtime threads in nonroot " "cgroups in the v2 hierarchy. On such systems, these threads must first be " "moved to the root cgroup before the I controller can be enabled." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ERRORS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The following errors can occur for B(2):" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An attempt to mount a cgroup version 1 filesystem specified neither the " "I option (to mount a named hierarchy) nor a controller name (or " "I)." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A child process created via B(2) inherits its parent's cgroup " "memberships. A process's cgroup memberships are preserved across " "B(2)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B(2) B flag can be used to create a child " "process that begins its life in a different version 2 cgroup from the parent " "process." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "/proc files" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 2.6.24)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This file contains information about the controllers that are compiled into " "the kernel. An example of the contents of this file (reformatted for " "readability) is the following:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "#subsys_name hierarchy num_cgroups enabled\n" "cpuset 4 1 1\n" "cpu 8 1 1\n" "cpuacct 8 1 1\n" "blkio 6 1 1\n" "memory 3 1 1\n" "devices 10 84 1\n" "freezer 7 1 1\n" "net_cls 9 1 1\n" "perf_event 5 1 1\n" "net_prio 9 1 1\n" "hugetlb 0 1 0\n" "pids 2 1 1\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The fields in this file are, from left to right:" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[1]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The name of the controller." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[2]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The unique ID of the cgroup hierarchy on which this controller is mounted. " "If multiple cgroups v1 controllers are bound to the same hierarchy, then " "each will show the same hierarchy ID in this field. The value in this field " "will be 0 if:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "the controller is not mounted on a cgroups v1 hierarchy;" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "the controller is bound to the cgroups v2 single unified hierarchy; or" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "the controller is disabled (see below)." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[3]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The number of control groups in this hierarchy using this controller." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "[4]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This field contains the value 1 if this controller is enabled, or 0 if it " "has been disabled (via the I kernel command-line boot " "parameter)." msgstr "" #. type: TP #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "IpidI (since Linux 2.6.24)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This file describes control groups to which the process with the " "corresponding PID belongs. The displayed information differs for cgroups " "version 1 and version 2 hierarchies." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For each cgroup hierarchy of which the process is a member, there is one " "entry containing three colon-separated fields:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "hierarchy-ID:controller-list:cgroup-path\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "For example:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "5:cpuacct,cpu,cpuset:/daemons\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The colon-separated fields are, from left to right:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For cgroups version 1 hierarchies, this field contains a unique hierarchy ID " "number that can be matched to a hierarchy ID in I. For the " "cgroups version 2 hierarchy, this field contains the value 0." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For cgroups version 1 hierarchies, this field contains a comma-separated " "list of the controllers bound to the hierarchy. For the cgroups version 2 " "hierarchy, this field is empty." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This field contains the pathname of the control group in the hierarchy to " "which the process belongs. This pathname is relative to the mount point of " "the hierarchy." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "/sys/kernel/cgroup files" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.15)" msgstr "" #. commit 01ee6cfb1483fe57c9cbd8e73817dfbf9bacffd3 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This file exports a list of the cgroups v2 files (one per line) that are " "delegatable (i.e., whose ownership should be changed to the user ID of the " "delegatee). In the future, the set of delegatable files may change or grow, " "and this file provides a way for the kernel to inform user-space " "applications of which files must be delegated. As at Linux 4.15, one sees " "the following when inspecting this file:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B\n" "cgroup.procs\n" "cgroup.subtree_control\n" "cgroup.threads\n" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 4.15)" msgstr "" #. commit 5f2e673405b742be64e7c3604ed4ed3ac14f35ce #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Over time, the set of cgroups v2 features that are provided by the kernel " "may change or grow, or some features may not be enabled by default. This " "file provides a way for user-space applications to discover what features " "the running kernel supports and has enabled. Features are listed one per " "line:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B\n" "nsdelegate\n" "memory_localevents\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The entries that can appear in this file are:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The kernel supports the I mount option." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The kernel supports the I mount option." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I (since Linux 5.7)" msgstr "" #. commit 8a931f801340c2be10552c7b5622d5f4852f3a36 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The kernel supports the I mount option." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(1), B(1), B(1), B(1), " "B(2), B(2), B(2), B(2), " "B(7), B(7), B(7), B(7), " "B(7)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The kernel source file I." msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-05" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: SS #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 #, no-wrap msgid "Cgroups v2 \"no internal processes\" rule" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "Writing the string I<\"max\"> to this file means that no limit is imposed. " "The default value in this file is I<\"max\" .>" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "Writing the string I<\"max\"> to this file means that no limit is imposed. " "The default value in this file is I<\"max\">." msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "This is a cgroup inside a threaded subtree that is in an \"invalid\" state. " "Processes can't be added to the cgroup, and controllers can't be enabled for " "the cgroup. The only thing that can be done with this cgroup (other than " "deleting it) is to convert it to a I cgroup by writing the string " "I<\"threaded\"> to the I file." msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "We write the string I<\"threaded\"> to the I file of a cgroup " "I that currently has the type I. This has the following " "effects:" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "We write the string I<\"threaded\"> to each of the I cgroups " "under I, in order to convert them to the type I. As a " "consequence of this step, all threads under the threaded root now have the " "type I and the threaded subtree is now fully usable. The " "requirement to write I<\"threaded\"> to each of these cgroups is somewhat " "cumbersome, but allows for possible future extensions to the thread-mode " "model." msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "All of the descendant cgroups of I that were not already of type " "I are converted to type I." msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "As before, we make the threaded subtree usable by writing the string " "I<\"threaded\"> to each of the I cgroups under I, in " "order to convert them to the type I." msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "Only the string I<\"threaded\"> may be written. In other words, the only " "explicit transition that is possible is to convert a I cgroup to " "type I." msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "The effect of writing I<\"threaded\"> depends on the current value in " "I, as follows:" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "If any of the above constraints is violated, then an attempt to write " "I<\"threaded\"> to a I file fails with the error B." msgstr "" #. type: SS #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 #, no-wrap msgid "The \"domain threaded\" cgroup type" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "The string I<\"threaded\"> is written to a child cgroup." msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "The root cgroup of the v2 hierarchy is treated exceptionally: it can be the " "parent of both I and I cgroups. If the string " "I<\"threaded\"> is written to the I file of one of the children " "of the root cgroup, then" msgstr "" #. type: SS #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 #, no-wrap msgid "The cgroups v2 \"cpu\" controller and realtime threads" msgstr "" #. type: Plain text #: debian-bookworm fedora-40 mageia-cauldron opensuse-leap-15-6 msgid "" "As at Linux 4.19, the cgroups v2 I controller does not support control " "of realtime threads (specifically threads scheduled under any of the " "policies B, B, described B; see " "B(7)). Therefore, the I controller can be enabled in the root " "cgroup only if all realtime threads are in the root cgroup. (If there are " "realtime threads in nonroot cgroups, then a B(2) of the string " "I<\"+cpu\"> to the I file fails with the error " "B.)" msgstr "" #. type: TP #: debian-bookworm #, no-wrap msgid "I (since Linux 2.6.24)" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "2024-03-05" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-04-03" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr ""