mirror of
https://github.com/containers/podman.git
synced 2025-06-24 03:08:13 +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 {
|
||||
cpu := s.ResourceLimits.CPU
|
||||
if cpu.Shares != nil && !sysInfo.CPUShares {
|
||||
@ -169,6 +169,7 @@ func verifyContainerResourcesCgroupV2(s *specgen.SpecGenerator) ([]string, error
|
||||
return warnings, nil
|
||||
}
|
||||
|
||||
// Memory checks
|
||||
if s.ResourceLimits.Memory != nil && s.ResourceLimits.Memory.Swap != nil {
|
||||
own, err := utils.GetOwnCgroup()
|
||||
if err != nil {
|
||||
@ -198,6 +199,19 @@ func verifyContainerResourcesCgroupV2(s *specgen.SpecGenerator) ([]string, error
|
||||
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
|
||||
}
|
||||
|
||||
|
@ -138,4 +138,20 @@ var _ = Describe("Podman run cpu", func() {
|
||||
result.WaitWithDefaultTimeout()
|
||||
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