Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20c56e59 authored by Hans Ragas's avatar Hans Ragas Committed by Tejun Heo
Browse files

cgroup: Add missing cgroup-v2 PID controller documentation.



Signed-off-by: default avatarHans Ragas <hansr@fb.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 7b4632f0
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@ CONTENTS
  5-3. IO
    5-3-1. IO Interface Files
    5-3-2. Writeback
  5-4. PID
    5-4-1. PID Interface Files
6. Namespace
  6-1. Basics
  6-2. The Root and Views
@@ -1119,6 +1121,45 @@ writeback as follows.
	vm.dirty[_background]_ratio.


5-4. PID

The process number controller is used to allow a cgroup to stop any
new tasks from being fork()'d or clone()'d after a specified limit is
reached.

The number of tasks in a cgroup can be exhausted in ways which other
controllers cannot prevent, thus warranting its own controller.  For
example, a fork bomb is likely to exhaust the number of tasks before
hitting memory restrictions.

Note that PIDs used in this controller refer to TIDs, process IDs as
used by the kernel.


5-4-1. PID Interface Files

  pids.max

 A read-write single value file which exists on non-root cgroups.  The
 default is "max".

 Hard limit of number of processes.

  pids.current

 A read-only single value file which exists on all cgroups.

 The number of processes currently in the cgroup and its descendants.

Organisational operations are not blocked by cgroup policies, so it is
possible to have pids.current > pids.max.  This can be done by either
setting the limit to be smaller than pids.current, or attaching enough
processes to the cgroup such that pids.current is larger than
pids.max.  However, it is not possible to violate a cgroup PID policy
through fork() or clone(). These will return -EAGAIN if the creation
of a new process would cause a cgroup policy to be violated.


6. Namespace

6-1. Basics