daemon/update_linux.go
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 = &quota
 
 	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
 }