提交 e4bf9a3b 编写于 作者: P Peter Krempa

qemu: Drop checking vcpu threads in emulator bandwidth getter/setter

The vCPU threads make sense in the counterparts that set the vCPU
bandwidth/quota, not in the emulator one. The emulator tunables are set
all the time anyways.

Drop the extra check and remove the now unneeded vm argument.
上级 6ba02c21
...@@ -10312,18 +10312,15 @@ qemuSetVcpusBWLive(virDomainObjPtr vm, virCgroupPtr cgroup, ...@@ -10312,18 +10312,15 @@ qemuSetVcpusBWLive(virDomainObjPtr vm, virCgroupPtr cgroup,
} }
static int static int
qemuSetEmulatorBandwidthLive(virDomainObjPtr vm, virCgroupPtr cgroup, qemuSetEmulatorBandwidthLive(virCgroupPtr cgroup,
unsigned long long period, long long quota) unsigned long long period,
long long quota)
{ {
qemuDomainObjPrivatePtr priv = vm->privateData;
virCgroupPtr cgroup_emulator = NULL; virCgroupPtr cgroup_emulator = NULL;
if (period == 0 && quota == 0) if (period == 0 && quota == 0)
return 0; return 0;
if (priv->nvcpupids == 0 || priv->vcpupids[0] == vm->pid)
return 0;
if (virCgroupNewThread(cgroup, VIR_CGROUP_THREAD_EMULATOR, 0, if (virCgroupNewThread(cgroup, VIR_CGROUP_THREAD_EMULATOR, 0,
false, &cgroup_emulator) < 0) false, &cgroup_emulator) < 0)
goto cleanup; goto cleanup;
...@@ -10500,7 +10497,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr dom, ...@@ -10500,7 +10497,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr dom,
QEMU_SCHED_MIN_PERIOD, QEMU_SCHED_MAX_PERIOD); QEMU_SCHED_MIN_PERIOD, QEMU_SCHED_MAX_PERIOD);
if (flags & VIR_DOMAIN_AFFECT_LIVE && value_ul) { if (flags & VIR_DOMAIN_AFFECT_LIVE && value_ul) {
if ((rc = qemuSetEmulatorBandwidthLive(vm, priv->cgroup, if ((rc = qemuSetEmulatorBandwidthLive(priv->cgroup,
value_ul, 0))) value_ul, 0)))
goto endjob; goto endjob;
...@@ -10521,7 +10518,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr dom, ...@@ -10521,7 +10518,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr dom,
QEMU_SCHED_MIN_QUOTA, QEMU_SCHED_MAX_QUOTA); QEMU_SCHED_MIN_QUOTA, QEMU_SCHED_MAX_QUOTA);
if (flags & VIR_DOMAIN_AFFECT_LIVE && value_l) { if (flags & VIR_DOMAIN_AFFECT_LIVE && value_l) {
if ((rc = qemuSetEmulatorBandwidthLive(vm, priv->cgroup, if ((rc = qemuSetEmulatorBandwidthLive(priv->cgroup,
0, value_l))) 0, value_l)))
goto endjob; goto endjob;
...@@ -10636,29 +10633,19 @@ qemuGetVcpusBWLive(virDomainObjPtr vm, ...@@ -10636,29 +10633,19 @@ qemuGetVcpusBWLive(virDomainObjPtr vm,
} }
static int static int
qemuGetEmulatorBandwidthLive(virDomainObjPtr vm, virCgroupPtr cgroup, qemuGetEmulatorBandwidthLive(virCgroupPtr cgroup,
unsigned long long *period, long long *quota) unsigned long long *period,
long long *quota)
{ {
virCgroupPtr cgroup_emulator = NULL; virCgroupPtr cgroup_emulator = NULL;
qemuDomainObjPrivatePtr priv = NULL;
int rc;
int ret = -1; int ret = -1;
priv = vm->privateData;
if (priv->nvcpupids == 0 || priv->vcpupids[0] == vm->pid) {
/* We don't create sub dir for each vcpu */
*period = 0;
*quota = 0;
return 0;
}
/* get period and quota for emulator */ /* get period and quota for emulator */
if (virCgroupNewThread(cgroup, VIR_CGROUP_THREAD_EMULATOR, 0, if (virCgroupNewThread(cgroup, VIR_CGROUP_THREAD_EMULATOR, 0,
false, &cgroup_emulator) < 0) false, &cgroup_emulator) < 0)
goto cleanup; goto cleanup;
rc = qemuGetVcpuBWLive(cgroup_emulator, period, quota); if (qemuGetVcpuBWLive(cgroup_emulator, period, quota) < 0)
if (rc < 0)
goto cleanup; goto cleanup;
ret = 0; ret = 0;
...@@ -10748,7 +10735,7 @@ qemuDomainGetSchedulerParametersFlags(virDomainPtr dom, ...@@ -10748,7 +10735,7 @@ qemuDomainGetSchedulerParametersFlags(virDomainPtr dom,
} }
if (*nparams > 3 && cpu_bw_status) { if (*nparams > 3 && cpu_bw_status) {
rc = qemuGetEmulatorBandwidthLive(vm, priv->cgroup, &emulator_period, rc = qemuGetEmulatorBandwidthLive(priv->cgroup, &emulator_period,
&emulator_quota); &emulator_quota);
if (rc != 0) if (rc != 0)
goto cleanup; goto cleanup;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册