Skip to content

Commit

Permalink
libc/cg: improve Manager docs
Browse files Browse the repository at this point in the history
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
  • Loading branch information
kolyshkin committed Apr 23, 2021
1 parent c3d3dbb commit e0133d6
Showing 1 changed file with 18 additions and 12 deletions.
30 changes: 18 additions & 12 deletions libcontainer/cgroups/cgroups.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,43 @@ import (
)

type Manager interface {
// Applies cgroup configuration to the process with the specified pid
// Apply creates a cgroup, if not yet created, and adds a process
// with the specified pid into that cgroup. A special value of -1
// can be used to merely create a cgroup.
Apply(pid int) error

// Returns the PIDs inside the cgroup set
// GetPids returns the PIDs of all processes inside the cgroup.
GetPids() ([]int, error)

// Returns the PIDs inside the cgroup set & all sub-cgroups
// GetAllPids returns the PIDs of all processes inside the cgroup
// any all its sub-cgroups.
GetAllPids() ([]int, error)

// Returns statistics for the cgroup set
// GetStats returns cgroups statistics.
GetStats() (*Stats, error)

// Toggles the freezer cgroup according with specified state
// Freeze sets the freezer cgroup to the specified state.
Freeze(state configs.FreezerState) error

// Destroys the cgroup set
// Destroy removes cgroup.
Destroy() error

// Path returns a cgroup path to the specified controller/subsystem.
// For cgroupv2, the argument is unused and can be empty.
Path(string) string

// Sets the cgroup as configured.
// Set sets cgroup resources parameters/limits. If the argument is nil,
// the resources specified during Manager creation are used.
Set(r *configs.Resources) error

// GetPaths returns cgroup path(s) to save in a state file in order to restore later.
// GetPaths returns cgroup path(s) to save in a state file in order to
// restore later.
//
// For cgroup v1, a key is cgroup subsystem name, and the value is the path
// to the cgroup for this subsystem.
// For cgroup v1, a key is cgroup subsystem name, and the value is the
// path to the cgroup for this subsystem.
//
// For cgroup v2 unified hierarchy, a key is "", and the value is the unified path.
// For cgroup v2 unified hierarchy, a key is "", and the value is the
// unified path.
GetPaths() map[string]string

// GetCgroups returns the cgroup data as configured.
Expand All @@ -46,7 +52,7 @@ type Manager interface {
// GetFreezerState retrieves the current FreezerState of the cgroup.
GetFreezerState() (configs.FreezerState, error)

// Whether the cgroup path exists or not
// Exists returns whether the cgroup path exists or not.
Exists() bool

// OOMKillCount reports OOM kill count for the cgroup.
Expand Down

0 comments on commit e0133d6

Please sign in to comment.