mirror of https://gitee.com/openkylin/libvirt.git
Show the real cpu shares value in live XML
Currently, the Linux kernel treats values of '0' and '1' as the minimum of 2. Values larger than the maximum are changed to the maximum. Re-reading the shares value after setting it reflects this in the live domain XML.
This commit is contained in:
parent
bdffab0d5c
commit
97814d8ab3
|
@ -38,9 +38,16 @@ static int virLXCCgroupSetupCpuTune(virDomainDefPtr def,
|
|||
virCgroupPtr cgroup)
|
||||
{
|
||||
int ret = -1;
|
||||
if (def->cputune.sharesSpecified &&
|
||||
virCgroupSetCpuShares(cgroup, def->cputune.shares) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (def->cputune.sharesSpecified) {
|
||||
unsigned long long val;
|
||||
if (virCgroupSetCpuShares(cgroup, def->cputune.shares) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCgroupGetCpuShares(cgroup, &val) < 0)
|
||||
goto cleanup;
|
||||
def->cputune.shares = val;
|
||||
}
|
||||
|
||||
if (def->cputune.quota != 0 &&
|
||||
virCgroupSetCpuCfsQuota(cgroup, def->cputune.quota) < 0)
|
||||
|
|
|
@ -1898,10 +1898,14 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom,
|
|||
|
||||
if (STREQ(param->field, VIR_DOMAIN_SCHEDULER_CPU_SHARES)) {
|
||||
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
|
||||
unsigned long long val;
|
||||
if (virCgroupSetCpuShares(priv->cgroup, params[i].value.ul) < 0)
|
||||
goto cleanup;
|
||||
|
||||
vm->def->cputune.shares = params[i].value.ul;
|
||||
if (virCgroupGetCpuShares(priv->cgroup, &val) < 0)
|
||||
goto cleanup;
|
||||
|
||||
vm->def->cputune.shares = val;
|
||||
vm->def->cputune.sharesSpecified = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -655,9 +655,15 @@ qemuSetupCpuCgroup(virDomainObjPtr vm)
|
|||
}
|
||||
}
|
||||
|
||||
if (vm->def->cputune.sharesSpecified &&
|
||||
virCgroupSetCpuShares(priv->cgroup, vm->def->cputune.shares) < 0)
|
||||
return -1;
|
||||
if (vm->def->cputune.sharesSpecified) {
|
||||
unsigned long long val;
|
||||
if (virCgroupSetCpuShares(priv->cgroup, vm->def->cputune.shares) < 0)
|
||||
return -1;
|
||||
|
||||
if (virCgroupGetCpuShares(priv->cgroup, &val) < 0)
|
||||
return -1;
|
||||
vm->def->cputune.shares = val;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -9085,9 +9085,14 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr dom,
|
|||
|
||||
if (STREQ(param->field, VIR_DOMAIN_SCHEDULER_CPU_SHARES)) {
|
||||
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
|
||||
unsigned long long val;
|
||||
if (virCgroupSetCpuShares(priv->cgroup, value_ul) < 0)
|
||||
goto cleanup;
|
||||
vm->def->cputune.shares = value_ul;
|
||||
|
||||
if (virCgroupGetCpuShares(priv->cgroup, &val) < 0)
|
||||
goto cleanup;
|
||||
|
||||
vm->def->cputune.shares = val;
|
||||
vm->def->cputune.sharesSpecified = true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue