Is it ok do drop unused code in the same patch that makes the code
obsolete, or should i split that up?
On Tue, 23 Feb 2016 16:58:41 +0100
Henning Schild <henning.schild(a)siemens.com> wrote:
qemuSetupCgroupForEmulator runs at a point in time where there is
only
the qemu main thread. Use virCgroupAddTask to put just that one task
into the emulator cgroup. That patch makes virCgroupMoveTask and
virCgroupAddTaskStrController obsolete.
Signed-off-by: Henning Schild <henning.schild(a)siemens.com>
---
src/libvirt_private.syms | 1 -
src/qemu/qemu_cgroup.c | 4 +-
src/util/vircgroup.c | 102
-----------------------------------------------
src/util/vircgroup.h | 3 -- 4 files changed, 2 insertions(+),
108 deletions(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index cf93d06..c5e57bf 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1234,7 +1234,6 @@ virCgroupIsolateMount;
virCgroupKill;
virCgroupKillPainfully;
virCgroupKillRecursive;
-virCgroupMoveTask;
virCgroupNewDetect;
virCgroupNewDetectMachine;
virCgroupNewDomainPartition;
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index 66dc782..d410a66 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -1145,8 +1145,8 @@ qemuSetupCgroupForEmulator(virDomainObjPtr vm)
true, &cgroup_emulator) < 0)
goto cleanup;
- if (virCgroupMoveTask(priv->cgroup, cgroup_emulator) < 0)
- goto cleanup;
+ if (virCgroupAddTask(cgroup_emulator, vm->pid) < 0)
+ goto cleanup;
if (def->cputune.emulatorpin)
cpumask = def->cputune.emulatorpin;
diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
index aef8e8c..c31c83b 100644
--- a/src/util/vircgroup.c
+++ b/src/util/vircgroup.c
@@ -1209,50 +1209,6 @@ virCgroupAddTaskController(virCgroupPtr group,
pid_t pid, int controller) }
-static int
-virCgroupAddTaskStrController(virCgroupPtr group,
- const char *pidstr,
- int controller)
-{
- char *str = NULL, *cur = NULL, *next = NULL;
- unsigned long long p = 0;
- int rc = 0;
- char *endp;
-
- if (VIR_STRDUP(str, pidstr) < 0)
- return -1;
-
- cur = str;
- while (*cur != '\0') {
- if (virStrToLong_ull(cur, &endp, 10, &p) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Cannot parse '%s' as an integer"),
cur);
- goto cleanup;
- }
-
- if (virCgroupAddTaskController(group, p, controller) < 0) {
- /* A thread that exits between when we first read the
source
- * tasks and now is not fatal. */
- if (virLastErrorIsSystemErrno(ESRCH))
- virResetLastError();
- else
- goto cleanup;
- }
-
- next = strchr(cur, '\n');
- if (next) {
- cur = next + 1;
- *next = '\0';
- } else {
- break;
- }
- }
-
- cleanup:
- VIR_FREE(str);
- return rc;
-}
-
void
virCgroupSetAssertEmpty(virCgroupPtr group, int mask) {
group->assert_empty = mask;
@@ -1264,54 +1220,6 @@ virCgroupGetAssertEmpty(virCgroupPtr group) {
}
-/**
- * virCgroupMoveTask:
- *
- * @src_group: The source cgroup where all tasks are removed from
- * @dest_group: The destination where all tasks are added to
- *
- * Returns: 0 on success or -1 on failure
- */
-int
-virCgroupMoveTask(virCgroupPtr src_group, virCgroupPtr dest_group)
-{
- int ret = -1;
- char *content = NULL;
- size_t i;
-
- for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
- if (!src_group->controllers[i].mountPoint ||
- !dest_group->controllers[i].mountPoint)
- continue;
-
- /* We must never move tasks in systemd's hierarchy */
- if (i == VIR_CGROUP_CONTROLLER_SYSTEMD)
- continue;
-
- /* New threads are created in the same group as their parent;
- * but if a thread is created after we first read we aren't
- * aware that it needs to move. Therefore, we must iterate
- * until content is empty. */
- while (1) {
- VIR_FREE(content);
- if (virCgroupGetValueStr(src_group, i, "tasks",
&content) < 0)
- return -1;
-
- if (!*content)
- break;
-
- if (virCgroupAddTaskStrController(dest_group, content,
i) < 0)
- goto cleanup;
- }
- }
-
- ret = 0;
- cleanup:
- VIR_FREE(content);
- return ret;
-}
-
-
static int
virCgroupSetPartitionSuffix(const char *path, char **res)
{
@@ -4309,16 +4217,6 @@ virCgroupAddTaskController(virCgroupPtr group
ATTRIBUTE_UNUSED,
int
-virCgroupMoveTask(virCgroupPtr src_group ATTRIBUTE_UNUSED,
- virCgroupPtr dest_group ATTRIBUTE_UNUSED)
-{
- virReportSystemError(ENXIO, "%s",
- _("Control groups not supported on this
platform"));
- return -1;
-}
-
-
-int
virCgroupGetBlkioIoServiced(virCgroupPtr group ATTRIBUTE_UNUSED,
long long *bytes_read ATTRIBUTE_UNUSED,
long long *bytes_write ATTRIBUTE_UNUSED,
diff --git a/src/util/vircgroup.h b/src/util/vircgroup.h
index f71aed5..0286d56 100644
--- a/src/util/vircgroup.h
+++ b/src/util/vircgroup.h
@@ -141,9 +141,6 @@ int virCgroupAddTaskController(virCgroupPtr group,
void virCgroupSetAssertEmpty(virCgroupPtr group, int mask);
int virCgroupGetAssertEmpty(virCgroupPtr group);
-int virCgroupMoveTask(virCgroupPtr src_group,
- virCgroupPtr dest_group);
-
int virCgroupSetBlkioWeight(virCgroupPtr group, unsigned int weight);
int virCgroupGetBlkioWeight(virCgroupPtr group, unsigned int
*weight);