]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: Add function virCgroupHasEmptyTasks
authorMartin Kletzander <mkletzan@redhat.com>
Sat, 13 Dec 2014 08:56:00 +0000 (09:56 +0100)
committerMartin Kletzander <mkletzan@redhat.com>
Tue, 16 Dec 2014 10:15:27 +0000 (11:15 +0100)
That function helps checking whether there's a task in that cgroup.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
src/libvirt_private.syms
src/util/vircgroup.c
src/util/vircgroup.h

index 57cf4d356ef69d619860d2327ed230facc2ce380..5cd88956a625eeb329583c503603efd1c7c73dc3 100644 (file)
@@ -1096,6 +1096,7 @@ virCgroupGetMemSwapHardLimit;
 virCgroupGetMemSwapUsage;
 virCgroupGetPercpuStats;
 virCgroupHasController;
+virCgroupHasEmptyTasks;
 virCgroupIsolateMount;
 virCgroupKill;
 virCgroupKillPainfully;
index 39954770b2d804614bec2ebcecb7f54564f14e38..4857ef3fed5bad78628bf4fecac2beff67f93879 100644 (file)
@@ -3926,6 +3926,20 @@ virCgroupSupportsCpuBW(virCgroupPtr cgroup)
     return ret;
 }
 
+int
+virCgroupHasEmptyTasks(virCgroupPtr cgroup, int controller)
+{
+    int ret = -1;
+    char *content = NULL;
+
+    ret = virCgroupGetValueStr(cgroup, controller, "tasks", &content);
+
+    if (ret == 0 && content[0] == '\0')
+        ret = 1;
+
+    VIR_FREE(content);
+    return ret;
+}
 
 #else /* !VIR_CGROUP_SUPPORTED */
 
@@ -4655,4 +4669,13 @@ virCgroupSetOwner(virCgroupPtr cgroup ATTRIBUTE_UNUSED,
     return -1;
 }
 
+int
+virCgroupHasEmptyTasks(virCgroupPtr cgroup ATTRIBUTE_UNUSED,
+                       int controller ATTRIBUTE_UNUSED)
+{
+    virReportSystemError(ENOSYS, "%s",
+                         _("Control groups not supported on this platform"));
+    return -1;
+}
+
 #endif /* !VIR_CGROUP_SUPPORTED */
index 7718a07d10fbe5bf031b4f8693fcbf496ab927d8..f07c1a74eecc1e2bab27dc52eb2361e163d461c3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * vircgroup.h: methods for managing control cgroups
  *
- * Copyright (C) 2011-2013 Red Hat, Inc.
+ * Copyright (C) 2011-2014 Red Hat, Inc.
  * Copyright IBM Corp. 2008
  *
  * This library is free software; you can redistribute it and/or
@@ -270,4 +270,6 @@ int virCgroupSetOwner(virCgroupPtr cgroup,
                       gid_t gid,
                       int controllers);
 
+int virCgroupHasEmptyTasks(virCgroupPtr cgroup, int controller);
+
 #endif /* __VIR_CGROUP_H__ */