[libvirt] [PATCH 2/3] qemu_driver: clamp value for setting sched cpu_shares with --config.

Ján Tomko jtomko at redhat.com
Thu May 15 12:11:11 UTC 2014


On 05/15/2014 11:39 AM, Dongsheng Yang wrote:
> As shown in 'man virsh' about schedinfo:
> 
>            Note: The cpu_shares parameter has a valid value range of 0-262144;
> 	   Negative values are wrapped to positive, and larger values are capped at
>            the maximum.  Therefore, -1 is a useful shorthand for 262144.
> 	   On the Linux kernel, the values 0 and 1 are automatically converted to
> 	   a minimal value of 2.
> it works well with --live, but not with --config.
> 
> Example:
> 	# virsh schedinfo rhel7-ful --set cpu_shares=0 --config
> 		Scheduler      : posix
> 		cpu_shares     : 0
> 		vcpu_period    : 0
> 		vcpu_quota     : 0
> 		emulator_period: 0
> 		emulator_quota : 0
> cpu_shares is 0 rather than expected 2.
> 
> What's worse, when we start it again, it is the default value of
> cpu_shares 1024.
> 
> Because when we set the value of cpu_shares, when flag is --live,
> write the value into cgroup/cpu.shares. Then it will convert the
> value into the range of [2, 262144]. When flag is --config, we
> set the value into vmdef immidiately and 0 means no settting for
> cpu_shares. When we start vm again, libvirt use default value(1024)
> for it.

commit bdffab0d5c52d31bd71422b0b69665efb6650953
Author:     Ján Tomko <jtomko at redhat.com>
CommitDate: 2014-03-26 10:10:02 +0100

    Treat zero cpu shares as a valid value

changed this behavior.

After this commit, if you set cpu_shares to 0 via schedinfo --config, the 0
will be written in the XML and used on domain startup.

To use the default value, the <shares> element needs to be removed from the
XML before restarting the domain, this cannot be currently done via 'virsh
schedinfo'.

Jan

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140515/5fe6d3c2/attachment-0001.sig>


More information about the libvir-list mailing list