github.com/shishir-a412ed/docker@v1.3.2-0.20180103180333-fda904911d87/daemon/update_linux.go (about) 1 package daemon 2 3 import ( 4 "time" 5 6 "github.com/docker/docker/api/types/container" 7 "github.com/docker/docker/libcontainerd" 8 specs "github.com/opencontainers/runtime-spec/specs-go" 9 ) 10 11 func toContainerdResources(resources container.Resources) *libcontainerd.Resources { 12 var r libcontainerd.Resources 13 14 r.BlockIO = &specs.LinuxBlockIO{ 15 Weight: &resources.BlkioWeight, 16 } 17 18 shares := uint64(resources.CPUShares) 19 r.CPU = &specs.LinuxCPU{ 20 Shares: &shares, 21 Cpus: resources.CpusetCpus, 22 Mems: resources.CpusetMems, 23 } 24 25 var ( 26 period uint64 27 quota int64 28 ) 29 if resources.NanoCPUs != 0 { 30 period = uint64(100 * time.Millisecond / time.Microsecond) 31 quota = resources.NanoCPUs * int64(period) / 1e9 32 } 33 r.CPU.Period = &period 34 r.CPU.Quota = "a 35 36 r.Memory = &specs.LinuxMemory{ 37 Limit: &resources.Memory, 38 Reservation: &resources.MemoryReservation, 39 Kernel: &resources.KernelMemory, 40 } 41 42 if resources.MemorySwap > 0 { 43 r.Memory.Swap = &resources.MemorySwap 44 } 45 46 return &r 47 }