4f0d95fa |
package daemon // import "github.com/docker/docker/daemon" |
9c4570a9 |
import ( |
61022436 |
"time"
|
91e197d6 |
"github.com/docker/docker/api/types/container" |
85ad4b16 |
libcontainerdtypes "github.com/docker/docker/libcontainerd/types" |
07ff4f1d |
specs "github.com/opencontainers/runtime-spec/specs-go" |
9c4570a9 |
)
|
85ad4b16 |
func toContainerdResources(resources container.Resources) *libcontainerdtypes.Resources {
var r libcontainerdtypes.Resources |
ddae20c0 |
r.BlockIO = &specs.LinuxBlockIO{
Weight: &resources.BlkioWeight,
}
shares := uint64(resources.CPUShares)
r.CPU = &specs.LinuxCPU{
Shares: &shares,
Cpus: resources.CpusetCpus,
Mems: resources.CpusetMems,
}
var (
period uint64
quota int64
) |
61022436 |
if resources.NanoCPUs != 0 { |
ddae20c0 |
period = uint64(100 * time.Millisecond / time.Microsecond)
quota = resources.NanoCPUs * int64(period) / 1e9 |
61022436 |
} |
86ba63db |
if quota == 0 && resources.CPUQuota != 0 {
quota = resources.CPUQuota
}
if period == 0 && resources.CPUPeriod != 0 {
period = uint64(resources.CPUPeriod)
}
|
ddae20c0 |
r.CPU.Period = &period
r.CPU.Quota = "a
r.Memory = &specs.LinuxMemory{
Limit: &resources.Memory,
Reservation: &resources.MemoryReservation,
Kernel: &resources.KernelMemory,
}
|
9c4570a9 |
if resources.MemorySwap > 0 { |
ddae20c0 |
r.Memory.Swap = &resources.MemorySwap |
9c4570a9 |
} |
ddae20c0 |
|
74eb258f |
r.Pids = getPidsLimit(resources) |
ddae20c0 |
return &r |
9c4570a9 |
} |