Skip to content

Commit

Permalink
Merge pull request #2434 from kolyshkin/cpu-quota-fix-minimal
Browse files Browse the repository at this point in the history
cgroupv1: minimal fix for cpu quota regression
  • Loading branch information
AkihiroSuda authored May 27, 2020
2 parents 1f737ee + be54678 commit a891fee
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 13 deletions.
14 changes: 1 addition & 13 deletions libcontainer/cgroups/systemd/v1.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ package systemd

import (
"errors"
"fmt"
"io/ioutil"
"math"
"os"
Expand Down Expand Up @@ -90,18 +89,7 @@ func genV1ResourcesProperties(c *configs.Cgroup) ([]systemdDbus.Property, error)
}

// cpu.cfs_quota_us and cpu.cfs_period_us are controlled by systemd.
if c.Resources.CpuQuota != 0 || c.Resources.CpuPeriod != 0 {
if c.Resources.CpuQuota < -1 {
return nil, fmt.Errorf("Invalid CPU quota value: %d", c.Resources.CpuQuota)
}
if c.Resources.CpuQuota != -1 {
if c.Resources.CpuQuota == 0 || c.Resources.CpuPeriod == 0 {
return nil, errors.New("CPU quota and period should both be set")
}
if c.Resources.CpuPeriod < 0 {
return nil, fmt.Errorf("Invalid CPU period value: %d", c.Resources.CpuPeriod)
}
}
if c.Resources.CpuQuota != 0 && c.Resources.CpuPeriod != 0 {
// corresponds to USEC_INFINITY in systemd
// if USEC_INFINITY is provided, CPUQuota is left unbound by systemd
// always setting a property value ensures we can apply a quota and remove it later
Expand Down
7 changes: 7 additions & 0 deletions tests/integration/update.bats
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,13 @@ EOF
[ "$status" -eq 0 ]
check_cgroup_value "cpu.cfs_quota_us" 600000
else
# update cpu quota
runc update test_update --cpu-quota 600000
[ "$status" -eq 0 ]
check_cgroup_value "cpu.cfs_quota_us" 600000
# this is currently broken
#check_systemd_value "CPUQuotaPerSecUSec" 600ms

# update cpu quota and period together
runc update test_update --cpu-period 900000 --cpu-quota 600000
[ "$status" -eq 0 ]
Expand Down

0 comments on commit a891fee

Please sign in to comment.