bool
virCgroupSupportsCpuBW(virCgroupPtr cgroup)
{
- VIR_AUTOFREE(char *) path = NULL;
-
- if (!cgroup)
- return false;
-
- if (virCgroupPathOfController(cgroup, VIR_CGROUP_CONTROLLER_CPU,
- "cpu.cfs_period_us", &path) < 0) {
- virResetLastError();
- return false;
- }
-
- return virFileExists(path);
+ VIR_CGROUP_BACKEND_CALL(cgroup, supportsCpuBW, false);
}
int
(*virCgroupGetCpuCfsQuotaCB)(virCgroupPtr group,
long long *cfs_quota);
+typedef bool
+(*virCgroupSupportsCpuBWCB)(virCgroupPtr cgroup);
+
struct _virCgroupBackend {
virCgroupBackendType type;
virCgroupGetCpuCfsPeriodCB getCpuCfsPeriod;
virCgroupSetCpuCfsQuotaCB setCpuCfsQuota;
virCgroupGetCpuCfsQuotaCB getCpuCfsQuota;
+ virCgroupSupportsCpuBWCB supportsCpuBW;
};
typedef struct _virCgroupBackend virCgroupBackend;
typedef virCgroupBackend *virCgroupBackendPtr;
}
+static bool
+virCgroupV1SupportsCpuBW(virCgroupPtr cgroup)
+{
+ VIR_AUTOFREE(char *) path = NULL;
+
+ if (!cgroup)
+ return false;
+
+ if (virCgroupV1PathOfController(cgroup, VIR_CGROUP_CONTROLLER_CPU,
+ "cpu.cfs_period_us", &path) < 0) {
+ virResetLastError();
+ return false;
+ }
+
+ return virFileExists(path);
+}
+
+
virCgroupBackend virCgroupV1Backend = {
.type = VIR_CGROUP_BACKEND_TYPE_V1,
.getCpuCfsPeriod = virCgroupV1GetCpuCfsPeriod,
.setCpuCfsQuota = virCgroupV1SetCpuCfsQuota,
.getCpuCfsQuota = virCgroupV1GetCpuCfsQuota,
+ .supportsCpuBW = virCgroupV1SupportsCpuBW,
};