2013-12-21 11:02:06 -05:00
package cgroups
import (
2014-04-14 00:02:01 +00:00
"errors"
2014-02-17 15:14:30 -08:00
"github.com/dotcloud/docker/pkg/libcontainer/devices"
2013-12-21 11:02:06 -05:00
)
2014-04-14 00:02:01 +00:00
var (
ErrNotFound = errors . New ( "mountpoint not found" )
)
2014-02-20 15:48:48 -08:00
type Cgroup struct {
Name string ` json:"name,omitempty" `
2014-02-17 15:14:30 -08:00
Parent string ` json:"parent,omitempty" ` // name of parent cgroup or slice
2014-02-20 15:48:48 -08:00
2014-05-30 18:30:27 -07:00
AllowAllDevices bool ` json:"allow_all_devices,omitempty" ` // If this is true allow access to any kind of device within the container. If false, allow access only to devices explicitly listed in the allowed_devices list.
AllowedDevices [ ] * devices . Device ` json:"allowed_devices,omitempty" `
Memory int64 ` json:"memory,omitempty" ` // Memory limit (in bytes)
MemoryReservation int64 ` json:"memory_reservation,omitempty" ` // Memory reservation or soft_limit (in bytes)
MemorySwap int64 ` json:"memory_swap,omitempty" ` // Total memory usage (memory + swap); set `-1' to disable swap
CpuShares int64 ` json:"cpu_shares,omitempty" ` // CPU shares (relative weight vs. other containers)
CpuQuota int64 ` json:"cpu_quota,omitempty" ` // CPU hardcap limit (in usecs). Allowed cpu time in a given period.
CpuPeriod int64 ` json:"cpu_period,omitempty" ` // CPU period to be used for hardcapping (in usecs). 0 to use system default.
CpusetCpus string ` json:"cpuset_cpus,omitempty" ` // CPU to use
Freezer string ` json:"freezer,omitempty" ` // set the freeze value for the process
2014-02-21 14:35:43 +01:00
2014-04-23 11:00:12 +02:00
Slice string ` json:"slice,omitempty" ` // Parent slice to use for systemd
2014-02-20 15:48:48 -08:00
}
2014-03-14 10:47:49 +01:00
type ActiveCgroup interface {
Cleanup ( ) error
2014-02-20 15:48:48 -08:00
}