From 69ef9b78c8f6e145d3e5cbd7f9f4ddfc9dfa3fae Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Wed, 27 Feb 2013 16:51:04 +0000 Subject: [PATCH] Avoid spamming logs with cgroups warnings 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 (cherry picked from commit 279336c5d8c44f28956b3427ab2bf207d06878e2) --- src/qemu/qemu_cgroup.c | 5 +++++ src/util/cgroup.c | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index e74cd7413a..539a861661 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -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); diff --git a/src/util/cgroup.c b/src/util/cgroup.c index 0825801c06..baf40483cb 100644 --- a/src/util/cgroup.c +++ b/src/util/cgroup.c @@ -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);