int
virCgroupSetCpusetMemoryMigrate(virCgroupPtr group, bool migrate)
{
- return virCgroupSetValueStr(group,
- VIR_CGROUP_CONTROLLER_CPUSET,
- "cpuset.memory_migrate",
- migrate ? "1" : "0");
+ VIR_CGROUP_BACKEND_CALL(group, setCpusetMemoryMigrate, -1, migrate);
}
int
virCgroupGetCpusetMemoryMigrate(virCgroupPtr group, bool *migrate)
{
- unsigned long long value = 0;
- int ret = virCgroupGetValueU64(group,
- VIR_CGROUP_CONTROLLER_CPUSET,
- "cpuset.memory_migrate",
- &value);
- *migrate = !!value;
- return ret;
+ VIR_CGROUP_BACKEND_CALL(group, getCpusetMemoryMigrate, -1, migrate);
}
(*virCgroupGetCpusetMemsCB)(virCgroupPtr group,
char **mems);
+typedef int
+(*virCgroupSetCpusetMemoryMigrateCB)(virCgroupPtr group,
+ bool migrate);
+
+typedef int
+(*virCgroupGetCpusetMemoryMigrateCB)(virCgroupPtr group,
+ bool *migrate);
+
struct _virCgroupBackend {
virCgroupBackendType type;
virCgroupSetCpusetMemsCB setCpusetMems;
virCgroupGetCpusetMemsCB getCpusetMems;
+ virCgroupSetCpusetMemoryMigrateCB setCpusetMemoryMigrate;
+ virCgroupGetCpusetMemoryMigrateCB getCpusetMemoryMigrate;
};
typedef struct _virCgroupBackend virCgroupBackend;
typedef virCgroupBackend *virCgroupBackendPtr;
}
+static int
+virCgroupV1SetCpusetMemoryMigrate(virCgroupPtr group,
+ bool migrate)
+{
+ return virCgroupSetValueStr(group,
+ VIR_CGROUP_CONTROLLER_CPUSET,
+ "cpuset.memory_migrate",
+ migrate ? "1" : "0");
+}
+
+
+static int
+virCgroupV1GetCpusetMemoryMigrate(virCgroupPtr group,
+ bool *migrate)
+{
+ unsigned long long value = 0;
+ int ret = virCgroupGetValueU64(group,
+ VIR_CGROUP_CONTROLLER_CPUSET,
+ "cpuset.memory_migrate",
+ &value);
+ *migrate = !!value;
+ return ret;
+}
+
+
virCgroupBackend virCgroupV1Backend = {
.type = VIR_CGROUP_BACKEND_TYPE_V1,
.setCpusetMems = virCgroupV1SetCpusetMems,
.getCpusetMems = virCgroupV1GetCpusetMems,
+ .setCpusetMemoryMigrate = virCgroupV1SetCpusetMemoryMigrate,
+ .getCpusetMemoryMigrate = virCgroupV1GetCpusetMemoryMigrate,
};