[libvirt] [PATCH 1/2] Correct minimum cpu_shares value

Osier Yang jyang at redhat.com
Tue Jul 26 03:44:37 UTC 2011


于 2011年07月26日 09:48, Dave Allan 写道:
> Fixes bz 639591
> ---
>   tools/virsh.pod |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/tools/virsh.pod b/tools/virsh.pod
> index 5b7fa9c..dd3457c 100644
> --- a/tools/virsh.pod
> +++ b/tools/virsh.pod
> @@ -696,7 +696,7 @@ If I<--live>  is specified, set scheduler information of a running guest.
>   If I<--config>  is specified, affect the next boot of a persistent guest.
>   If I<--current>  is specified, affect the current guest state.
>
> -B<Note>: The cpu_shares parameter has a valid value range of 0-262144; Negative
> +B<Note>: The cpu_shares parameter has a valid value range of 2-262144; Negative
>   values are wrapped to positive, and larger values are capped at the maximum.
>   Therefore, -1 is a useful shorthand for 262144.
>

What Linda commented in the bug is wrong.

# echo 2048 > /sys/fs/cgroup/cpu/cpu.shares
-bash: echo: write error: Invalid argument

# echo 4 > /sys/fs/cgroup/cpu/cpu.shares
-bash: echo: write error: Invalid argument

The error is not from cgroup. Actually it doesn't report
any error and silently set cpu.shares to 2 if the value
one passed is lower than 2.

But I guess kernel will not think it as a bug, what we can do
is improving the doc. But I guess the improvement in this
patch doesn't tell the whole truth.

# virsh schedinfo test --set cpu_shares=0
Scheduler : posix
cpu_shares : 2

Only saying the valid range is 0-2621244 doesn't explain why we still 
allows 0,
but no error, and the cpu.shares is silently set to "2".

Regards
Osier




More information about the libvir-list mailing list