mirror of
https://github.com/containers/podman.git
synced 2025-06-24 11:28:24 +08:00
Merge pull request #15713 from sstosh/cpu-rt-cgroupsv2
Ignore cpu realtime options on cgroups V2 systems
This commit is contained in:
@ -82,7 +82,7 @@ func verifyContainerResourcesCgroupV1(s *specgen.SpecGenerator) ([]string, error
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CPU Checks
|
// CPU checks
|
||||||
if s.ResourceLimits.CPU != nil {
|
if s.ResourceLimits.CPU != nil {
|
||||||
cpu := s.ResourceLimits.CPU
|
cpu := s.ResourceLimits.CPU
|
||||||
if cpu.Shares != nil && !sysInfo.CPUShares {
|
if cpu.Shares != nil && !sysInfo.CPUShares {
|
||||||
@ -169,6 +169,7 @@ func verifyContainerResourcesCgroupV2(s *specgen.SpecGenerator) ([]string, error
|
|||||||
return warnings, nil
|
return warnings, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Memory checks
|
||||||
if s.ResourceLimits.Memory != nil && s.ResourceLimits.Memory.Swap != nil {
|
if s.ResourceLimits.Memory != nil && s.ResourceLimits.Memory.Swap != nil {
|
||||||
own, err := utils.GetOwnCgroup()
|
own, err := utils.GetOwnCgroup()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -198,6 +199,19 @@ func verifyContainerResourcesCgroupV2(s *specgen.SpecGenerator) ([]string, error
|
|||||||
s.ResourceLimits.Memory.Swap = nil
|
s.ResourceLimits.Memory.Swap = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CPU checks
|
||||||
|
if s.ResourceLimits.CPU != nil {
|
||||||
|
cpu := s.ResourceLimits.CPU
|
||||||
|
if cpu.RealtimePeriod != nil {
|
||||||
|
warnings = append(warnings, "Realtime period not supported on cgroups V2 systems")
|
||||||
|
cpu.RealtimePeriod = nil
|
||||||
|
}
|
||||||
|
if cpu.RealtimeRuntime != nil {
|
||||||
|
warnings = append(warnings, "Realtime runtime not supported on cgroups V2 systems")
|
||||||
|
cpu.RealtimeRuntime = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
return warnings, nil
|
return warnings, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,4 +138,20 @@ var _ = Describe("Podman run cpu", func() {
|
|||||||
result.WaitWithDefaultTimeout()
|
result.WaitWithDefaultTimeout()
|
||||||
Expect(result).To(ExitWithError())
|
Expect(result).To(ExitWithError())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("podman run invalid cpu-rt-period with cgroupsv2", func() {
|
||||||
|
SkipIfCgroupV1("testing options that only work in cgroup v2")
|
||||||
|
result := podmanTest.Podman([]string{"run", "--rm", "--cpu-rt-period=5000", ALPINE, "ls"})
|
||||||
|
result.WaitWithDefaultTimeout()
|
||||||
|
Expect(result).Should(Exit(0))
|
||||||
|
Expect(result.ErrorToString()).To(ContainSubstring("Realtime period not supported on cgroups V2 systems"))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("podman run invalid cpu-rt-runtime with cgroupsv2", func() {
|
||||||
|
SkipIfCgroupV1("testing options that only work in cgroup v2")
|
||||||
|
result := podmanTest.Podman([]string{"run", "--rm", "--cpu-rt-runtime=5000", ALPINE, "ls"})
|
||||||
|
result.WaitWithDefaultTimeout()
|
||||||
|
Expect(result).Should(Exit(0))
|
||||||
|
Expect(result.ErrorToString()).To(ContainSubstring("Realtime runtime not supported on cgroups V2 systems"))
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user