From: Oguz Bektas Date: Thu, 21 Oct 2021 14:36:19 +0000 (+0200) Subject: cgroup: cpu quota: fix resetting period length for v1 X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=d37a71867233a09803e825f0249a1c7df8be25a0;ds=sidebyside cgroup: cpu quota: fix resetting period length for v1 The CFS period µs value for cgroup v1 needs to be >= 1 µs and <= 1 s, so resetting it to -1 (like we cab do for the quota) cannot work. So, when the period is passed as undefined it should be set to 100ms, i.e., the actual default value: > - cpu.cfs_quota_us: the total available run-time within a period (in microseconds) > - cpu.cfs_period_us: the length of a period (in microseconds) > - cpu.stat: exports throttling statistics [explained further below] > > The default values are: > cpu.cfs_period_us=100ms > cpu.cfs_quota=-1 -- https://www.kernel.org/doc/html/v5.14/scheduler/sched-bwc.html This issue was there since initial addition in its original repo, pve-container commit 26b645e2. Signed-off-by: Oguz Bektas [ Thomas: add more information, adapt commit subject to reduce redundancy, link to new RsT based doc page with a fixed version ] Signed-off-by: Thomas Lamprecht --- diff --git a/src/PVE/CGroup.pm b/src/PVE/CGroup.pm index 21681b8..dd9b034 100644 --- a/src/PVE/CGroup.pm +++ b/src/PVE/CGroup.pm @@ -467,8 +467,8 @@ sub change_cpu_quota { PVE::ProcFSTools::write_proc_entry("$path/cpu.max", 'max'); } } elsif ($ver == 1) { - $quota //= -1; # unlimited - $period //= -1; + $quota //= -1; # default (unlimited) + $period //= 100_000; # default (100 ms) PVE::ProcFSTools::write_proc_entry("$path/cpu.cfs_period_us", $period); PVE::ProcFSTools::write_proc_entry("$path/cpu.cfs_quota_us", $quota); } else {