Documentation ¶
Overview ¶
Package cgroup provides cgroup utilities to handle nested cgroups.
When Talos runs in a container, it might either share or not share the host cgroup namespace. If the cgroup namespace is not shared, PID 1 will appear in cgroup '/', otherwise it will be part of some pre-existing cgroup hierarchy.
When Talos is running in a non-container mode, it is always at the root of the cgroup hierarchy.
This package provides a transparent way to handle nested cgroups by providing a Path() function which returns the correct cgroup path based on the cgroup hierarchy available.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InitRoot ¶
func InitRoot() error
InitRoot initializes the root cgroup path.
This function should be called once at the beginning of the program, after the cgroup filesystem is mounted.
This function only supports cgroupv2 nesting.
func MillicoresToCPUWeight ¶
func MillicoresToCPUWeight(requested MilliCores) uint64
MillicoresToCPUWeight converts milli-cores to CPU weight.
It limits millicores to available CPU cores.
func Path ¶
Path returns the path to the cgroup.
This function handles the case when the cgroups are nested.
func SharesToCPUWeight ¶
SharesToCPUWeight converts CPU shares to CPU weight.
Types ¶
type CPUShare ¶
type CPUShare uint64
CPUShare represents a CPU share value.
func MilliCoresToShares ¶
func MilliCoresToShares(milliCores MilliCores) CPUShare
MilliCoresToShares converts milli-cores to CPU shares.
type MilliCores ¶
type MilliCores uint
MilliCores represents a CPU value in milli-cores.
func AvailableMilliCores ¶
func AvailableMilliCores() MilliCores
AvailableMilliCores returns the number of available CPU cores in milli-cores.