mirror of
https://github.com/containers/podman.git
synced 2025-06-21 09:28:09 +08:00
common: setting cgroup resources correctly
fix some cgroups related integration tests. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
@ -47,6 +47,12 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if s.ResourceLimits == nil {
|
||||
s.ResourceLimits = &specs.LinuxResources{}
|
||||
}
|
||||
if s.ResourceLimits.Memory == nil {
|
||||
s.ResourceLimits.Memory = &specs.LinuxMemory{}
|
||||
}
|
||||
if m := c.Memory; len(m) > 0 {
|
||||
ml, err := units.RAMInBytes(m)
|
||||
if err != nil {
|
||||
@ -81,6 +87,9 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
|
||||
}
|
||||
s.ResourceLimits.Memory.Kernel = &mk
|
||||
}
|
||||
if s.ResourceLimits.BlockIO == nil {
|
||||
s.ResourceLimits.BlockIO = &specs.LinuxBlockIO{}
|
||||
}
|
||||
if b := c.BlkIOWeight; len(b) > 0 {
|
||||
u, err := strconv.ParseUint(b, 10, 16)
|
||||
if err != nil {
|
||||
@ -313,14 +322,16 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
|
||||
s.StopSignal = &stopSignal
|
||||
}
|
||||
}
|
||||
swappiness := uint64(c.MemorySwappiness)
|
||||
if s.ResourceLimits == nil {
|
||||
s.ResourceLimits = &specs.LinuxResources{}
|
||||
}
|
||||
if s.ResourceLimits.Memory == nil {
|
||||
s.ResourceLimits.Memory = &specs.LinuxMemory{}
|
||||
}
|
||||
if c.MemorySwappiness >= 0 {
|
||||
swappiness := uint64(c.MemorySwappiness)
|
||||
s.ResourceLimits.Memory.Swappiness = &swappiness
|
||||
}
|
||||
|
||||
if s.LogConfiguration == nil {
|
||||
s.LogConfiguration = &specgen.LogConfig{}
|
||||
@ -332,7 +343,9 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
|
||||
if s.ResourceLimits.Pids == nil {
|
||||
s.ResourceLimits.Pids = &specs.LinuxPids{}
|
||||
}
|
||||
if c.PIDsLimit > 0 {
|
||||
s.ResourceLimits.Pids.Limit = c.PIDsLimit
|
||||
}
|
||||
if c.CGroups == "disabled" && c.PIDsLimit > 0 {
|
||||
s.ResourceLimits.Pids.Limit = -1
|
||||
}
|
||||
@ -507,18 +520,28 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
|
||||
if s.ResourceLimits.CPU == nil {
|
||||
s.ResourceLimits.CPU = &specs.LinuxCPU{}
|
||||
}
|
||||
if c.CPUShares > 0 {
|
||||
s.ResourceLimits.CPU.Shares = &c.CPUShares
|
||||
}
|
||||
if c.CPUPeriod > 0 {
|
||||
s.ResourceLimits.CPU.Period = &c.CPUPeriod
|
||||
}
|
||||
|
||||
// TODO research these
|
||||
//s.ResourceLimits.CPU.Cpus = c.CPUS
|
||||
//s.ResourceLimits.CPU.Cpus = c.CPUSetCPUs
|
||||
|
||||
//s.ResourceLimits.CPU. = c.CPUSetCPUs
|
||||
if c.CPUSetCPUs != "" {
|
||||
s.ResourceLimits.CPU.Cpus = c.CPUSetCPUs
|
||||
}
|
||||
if c.CPUSetMems != "" {
|
||||
s.ResourceLimits.CPU.Mems = c.CPUSetMems
|
||||
}
|
||||
if c.CPUQuota > 0 {
|
||||
s.ResourceLimits.CPU.Quota = &c.CPUQuota
|
||||
}
|
||||
if c.CPURTPeriod > 0 {
|
||||
s.ResourceLimits.CPU.RealtimePeriod = &c.CPURTPeriod
|
||||
}
|
||||
if c.CPURTRuntime > 0 {
|
||||
s.ResourceLimits.CPU.RealtimeRuntime = &c.CPURTRuntime
|
||||
}
|
||||
s.OOMScoreAdj = &c.OOMScoreAdj
|
||||
s.RestartPolicy = c.Restart
|
||||
s.Remove = c.Rm
|
||||
|
Reference in New Issue
Block a user