]> xenbits.xensource.com Git - libvirt.git/commitdiff
vircgroup: extract virCgroupV1(Set|Get)CpuShares
authorPavel Hrdina <phrdina@redhat.com>
Wed, 5 Sep 2018 18:11:38 +0000 (20:11 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Tue, 25 Sep 2018 11:40:22 +0000 (13:40 +0200)
Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
src/util/vircgroup.c
src/util/vircgroupbackend.h
src/util/vircgroupv1.c

index 5f161a95c6a3709d1a696b9cb570c501dda7010c..562071824b039af72f2170919d93c49290c77f6c 100644 (file)
@@ -2201,18 +2201,14 @@ virCgroupGetDomainTotalCpuStats(virCgroupPtr group,
 int
 virCgroupSetCpuShares(virCgroupPtr group, unsigned long long shares)
 {
-    return virCgroupSetValueU64(group,
-                                VIR_CGROUP_CONTROLLER_CPU,
-                                "cpu.shares", shares);
+    VIR_CGROUP_BACKEND_CALL(group, setCpuShares, -1, shares);
 }
 
 
 int
 virCgroupGetCpuShares(virCgroupPtr group, unsigned long long *shares)
 {
-    return virCgroupGetValueU64(group,
-                                VIR_CGROUP_CONTROLLER_CPU,
-                                "cpu.shares", shares);
+    VIR_CGROUP_BACKEND_CALL(group, getCpuShares, -1, shares);
 }
 
 
index 436c83f6faa63e3b90e3f44ca7008fa08253b84f..54fbead8a2be916f9b902497246596fc03925be9 100644 (file)
@@ -276,6 +276,14 @@ typedef int
 typedef int
 (*virCgroupDenyAllDevicesCB)(virCgroupPtr group);
 
+typedef int
+(*virCgroupSetCpuSharesCB)(virCgroupPtr group,
+                           unsigned long long shares);
+
+typedef int
+(*virCgroupGetCpuSharesCB)(virCgroupPtr group,
+                           unsigned long long *shares);
+
 struct _virCgroupBackend {
     virCgroupBackendType type;
 
@@ -330,6 +338,9 @@ struct _virCgroupBackend {
     virCgroupDenyDeviceCB denyDevice;
     virCgroupAllowAllDevicesCB allowAllDevices;
     virCgroupDenyAllDevicesCB denyAllDevices;
+
+    virCgroupSetCpuSharesCB setCpuShares;
+    virCgroupGetCpuSharesCB getCpuShares;
 };
 typedef struct _virCgroupBackend virCgroupBackend;
 typedef virCgroupBackend *virCgroupBackendPtr;
index 1bded9208ac84fb8c8ca208425e953e0a7a5da95..9ce10fcbad74a8e5921031e6b469fb5c22f6038d 100644 (file)
@@ -1765,6 +1765,26 @@ virCgroupV1DenyAllDevices(virCgroupPtr group)
 }
 
 
+static int
+virCgroupV1SetCpuShares(virCgroupPtr group,
+                        unsigned long long shares)
+{
+    return virCgroupSetValueU64(group,
+                                VIR_CGROUP_CONTROLLER_CPU,
+                                "cpu.shares", shares);
+}
+
+
+static int
+virCgroupV1GetCpuShares(virCgroupPtr group,
+                        unsigned long long *shares)
+{
+    return virCgroupGetValueU64(group,
+                                VIR_CGROUP_CONTROLLER_CPU,
+                                "cpu.shares", shares);
+}
+
+
 virCgroupBackend virCgroupV1Backend = {
     .type = VIR_CGROUP_BACKEND_TYPE_V1,
 
@@ -1817,6 +1837,9 @@ virCgroupBackend virCgroupV1Backend = {
     .denyDevice = virCgroupV1DenyDevice,
     .allowAllDevices = virCgroupV1AllowAllDevices,
     .denyAllDevices = virCgroupV1DenyAllDevices,
+
+    .setCpuShares = virCgroupV1SetCpuShares,
+    .getCpuShares = virCgroupV1GetCpuShares,
 };