]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
add interface virCgroupGetMemSwapUsage
authorGao feng <gaofeng@cn.fujitsu.com>
Mon, 12 Nov 2012 07:02:25 +0000 (15:02 +0800)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 28 Nov 2012 10:28:49 +0000 (10:28 +0000)
virCgroupGetMemSwapUsage is used to get container's swap usage,
with this interface,we can get swap usage in fuse filesystem.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
src/libvirt_private.syms
src/util/cgroup.c
src/util/cgroup.h

index 05ef0f698f24a144597ca08a4726507f5b77f1c8..c1eaf6f498fba6908cb47b1b0117673ad31c475c 100644 (file)
@@ -98,6 +98,7 @@ virCgroupGetCpuacctUsage;
 virCgroupGetCpusetCpus;
 virCgroupGetCpusetMems;
 virCgroupGetFreezerState;
+virCgroupGetMemSwapUsage;
 virCgroupGetMemSwapHardLimit;
 virCgroupGetMemoryHardLimit;
 virCgroupGetMemorySoftLimit;
index 41a6e4ae4bb24669726d851538433d12f4847947..f0f9209ab186037a6c70265c01769a19f1937192 100644 (file)
@@ -1370,6 +1370,26 @@ int virCgroupGetMemSwapHardLimit(virCgroupPtr group, unsigned long long *kb)
     return ret;
 }
 
+/**
+ * virCgroupGetMemSwapUsage:
+ *
+ * @group: The cgroup to get mem+swap usage for
+ * @kb: The mem+swap amount in kilobytes
+ *
+ * Returns: 0 on success
+ */
+int virCgroupGetMemSwapUsage(virCgroupPtr group, unsigned long long *kb)
+{
+    long long unsigned int usage_in_bytes;
+    int ret;
+    ret = virCgroupGetValueU64(group,
+                               VIR_CGROUP_CONTROLLER_MEMORY,
+                               "memory.memsw.usage_in_bytes", &usage_in_bytes);
+    if (ret == 0)
+        *kb = usage_in_bytes >> 10;
+    return ret;
+}
+
 /**
  * virCgroupSetCpusetMems:
  *
index 38fa4b7ebb6c9a5dbc0b59947d7c4801e57f4b9f..0c11eb1a1d9891e73e42f4455e4363801541c0eb 100644 (file)
@@ -92,6 +92,7 @@ int virCgroupSetMemorySoftLimit(virCgroupPtr group, unsigned long long kb);
 int virCgroupGetMemorySoftLimit(virCgroupPtr group, unsigned long long *kb);
 int virCgroupSetMemSwapHardLimit(virCgroupPtr group, unsigned long long kb);
 int virCgroupGetMemSwapHardLimit(virCgroupPtr group, unsigned long long *kb);
+int virCgroupGetMemSwapUsage(virCgroupPtr group, unsigned long long *kb);
 
 enum {
     VIR_CGROUP_DEVICE_READ  = 1,