
On 12/13/2013 09:18 AM, Ján Tomko wrote:
In the XML parser, a zero in the <shares> element is treated as if it was omitted completely. No value is written to the cgroups fs when the domain is started and the OS default is used.
virDomainSetSchedulerParameters treated 0 as a valid value, which got changed to '2' by kernel. Treat 0 as 'not specified' instead, to be consistent with the XML and how other scheduler parameters deal with a 0 value, making it a no-op on live domains.
Also clarify the documentation. ---
+++ b/src/lxc/lxc_driver.c @@ -1732,7 +1732,7 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, virTypedParameterPtr param = ¶ms[i];
if (STREQ(param->field, VIR_DOMAIN_SCHEDULER_CPU_SHARES)) { - if (flags & VIR_DOMAIN_AFFECT_LIVE) { + if (flags & VIR_DOMAIN_AFFECT_LIVE && params[i].value.ul) { if (virCgroupSetCpuShares(priv->cgroup, params[i].value.ul) < 0)
If the value was previously set to non-zero, don't you need to do something to explicitly unset that old value, rather than just ignoring the option altogether? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org