Skip to content

Commit

Permalink
cgroup: Add missing cgroup-v2 PID controller documentation.
Browse files Browse the repository at this point in the history
Signed-off-by: Hans Ragas <hansr@fb.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
  • Loading branch information
Hans Ragas authored and Tejun Heo committed Jan 10, 2017
1 parent 7b4632f commit 20c56e5
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions Documentation/cgroup-v2.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 20c56e5

Please sign in to comment.