From ed1ba69f5a8132f8c1e73d2a1f142d70de0b564a Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Wed, 25 Nov 2020 12:41:16 +0100 Subject: [PATCH] vircgroup: fix cpu quota maximum limit Kernel commit added proper check for cpu quota maximum limit to prevent internal overflow. Even though this change is not present in all kernels it makes sense to enforce the same limit in libvirt. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1750315 Signed-off-by: Pavel Hrdina Reviewed-by: Daniel Henrique Barboza --- src/util/vircgroup.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/util/vircgroup.h b/src/util/vircgroup.h index 2a9b341985..ec0902e301 100644 --- a/src/util/vircgroup.h +++ b/src/util/vircgroup.h @@ -233,7 +233,9 @@ int virCgroupSetupCpuShares(virCgroupPtr cgroup, unsigned long long shares, #define VIR_CGROUP_CPU_PERIOD_MIN 1000LL #define VIR_CGROUP_CPU_PERIOD_MAX 1000000LL #define VIR_CGROUP_CPU_QUOTA_MIN 1000LL -#define VIR_CGROUP_CPU_QUOTA_MAX 18446744073709551LL +/* Based on kernel code ((1ULL << MAX_BW_BITS) - 1) where MAX_BW_BITS is + * (64 - BW_SHIFT) and BW_SHIFT is 20 */ +#define VIR_CGROUP_CPU_QUOTA_MAX 17592186044415LL int virCgroupSetCpuCfsPeriod(virCgroupPtr group, unsigned long long cfs_period); int virCgroupGetCpuCfsPeriod(virCgroupPtr group, unsigned long long *cfs_period);