]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Avoid spamming logs with cgroups warnings
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 27 Feb 2013 16:51:04 +0000 (16:51 +0000)
committerEric Blake <eblake@redhat.com>
Tue, 21 May 2013 20:03:13 +0000 (14:03 -0600)
The code for putting the emulator threads in a separate cgroup
would spam the logs with warnings

2013-02-27 16:08:26.731+0000: 29624: warning : virCgroupMoveTask:887 : no vm cgroup in controller 3
2013-02-27 16:08:26.731+0000: 29624: warning : virCgroupMoveTask:887 : no vm cgroup in controller 4
2013-02-27 16:08:26.732+0000: 29624: warning : virCgroupMoveTask:887 : no vm cgroup in controller 6

This is because it has only created child cgroups for 3 of the
controllers, but was trying to move the processes from all the
controllers. The fix is to only try to move threads in the
controllers we actually created. Also remove the warning and
make it return a hard error to avoid such lazy callers in the
future.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
(cherry picked from commit 279336c5d8c44f28956b3427ab2bf207d06878e2)

src/qemu/qemu_cgroup.c
src/util/cgroup.c

index e74cd7413aa329220269c4bce357494b73883792..539a861661446dd7e8a384a18e8cf81f593c4dd4 100644 (file)
@@ -685,6 +685,11 @@ int qemuSetupCgroupForEmulator(struct qemud_driver *driver,
     }
 
     for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
+        if (i != VIR_CGROUP_CONTROLLER_CPU &&
+            i != VIR_CGROUP_CONTROLLER_CPUACCT &&
+            i != VIR_CGROUP_CONTROLLER_CPUSET)
+            continue;
+
         if (!qemuCgroupControllerActive(driver, i))
             continue;
         rc = virCgroupMoveTask(cgroup, cgroup_emulator, i);
index 0825801c06042dec2c225bf5173e3cb488136ce4..baf40483cbef2e855a1a88f54352f21e9a501291 100644 (file)
@@ -882,8 +882,7 @@ int virCgroupMoveTask(virCgroupPtr src_group, virCgroupPtr dest_group,
 
     if (!src_group->controllers[controller].mountPoint ||
         !dest_group->controllers[controller].mountPoint) {
-        VIR_WARN("no vm cgroup in controller %d", controller);
-        return 0;
+        return -EINVAL;
     }
 
     rc = virCgroupGetValueStr(src_group, controller, "tasks", &content);