提交 90b721e4 编写于 作者: H Henning Schild 提交者: John Ferlan

qemu cgroups: move new threads to new cgroup after cpuset is set up

Moving tasks to cgroups implied sched_setaffinity. Changing the cpus in
a set implies the same for all tasks in the group.
The old code put the the thread into the cpuset inherited from the
machine cgroup, which allowed it to run outside of vcpupin for a short
while.
Signed-off-by: NHenning Schild <henning.schild@siemens.com>
上级 a41c00b4
......@@ -1052,11 +1052,6 @@ qemuSetupCgroupForVcpu(virDomainObjPtr vm)
true, &cgroup_vcpu) < 0)
goto cleanup;
/* move the thread for vcpu to sub dir */
if (virCgroupAddTask(cgroup_vcpu,
qemuDomainGetVcpuPid(vm, i)) < 0)
goto cleanup;
if (period || quota) {
if (qemuSetupCgroupVcpuBW(cgroup_vcpu, period, quota) < 0)
goto cleanup;
......@@ -1090,6 +1085,12 @@ qemuSetupCgroupForVcpu(virDomainObjPtr vm)
if (qemuSetupCgroupCpusetCpus(cgroup_vcpu, cpumap) < 0)
goto cleanup;
}
/* move the thread for vcpu to sub dir */
if (virCgroupAddTask(cgroup_vcpu,
qemuDomainGetVcpuPid(vm, i)) < 0)
goto cleanup;
}
virCgroupFree(&cgroup_vcpu);
VIR_FREE(mem_mask);
......@@ -1222,11 +1223,6 @@ qemuSetupCgroupForIOThreads(virDomainObjPtr vm)
true, &cgroup_iothread) < 0)
goto cleanup;
/* move the thread for iothread to sub dir */
if (virCgroupAddTask(cgroup_iothread,
def->iothreadids[i]->thread_id) < 0)
goto cleanup;
if (period || quota) {
if (qemuSetupCgroupVcpuBW(cgroup_iothread, period, quota) < 0)
goto cleanup;
......@@ -1253,6 +1249,11 @@ qemuSetupCgroupForIOThreads(virDomainObjPtr vm)
goto cleanup;
}
/* move the thread for iothread to sub dir */
if (virCgroupAddTask(cgroup_iothread,
def->iothreadids[i]->thread_id) < 0)
goto cleanup;
virCgroupFree(&cgroup_iothread);
}
VIR_FREE(mem_mask);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册