[libvirt] [PATCH 2/2] qemu: Add range checking for scheduler tunables

Eric Blake eblake at redhat.com
Tue Sep 4 15:03:04 UTC 2012


On 09/04/2012 08:12 AM, Peter Krempa wrote:
> The quota and period tunables for cpu scheduler accept only a certain
> range of values. When changing the live configuration invalid values get
> rejected. This check is not performed when changing persistent config.
> 
> This patch adds a separate range check, that improves error messages
> when changing live config and adds the check for persistent config.
> ---
>  src/qemu/qemu_driver.c | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 4b8b751..3d59594 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -106,6 +106,11 @@
>  #define QEMU_NB_TOTAL_CPU_STAT_PARAM 3
>  #define QEMU_NB_PER_CPU_STAT_PARAM 2
> 
> +#define QEMU_SCHED_MIN_PERIOD (long long)              1000

Under-parenthesized; if you insist on the cast, it should be:

#define QEMU_SCHED_MIN_PERIOD ((long long) 1000)

that said, it is possible to be more concise (with no parentheses
necessary):

#define QEMU_SCHED_MIN_PERIOD 1000LL

> +#define QEMU_SCHED_MAX_PERIOD (long long)           1000000
> +#define QEMU_SCHED_MIN_QUOTA  (long long)              1000
> +#define QEMU_SCHED_MAX_QUOTA  (long long) 18446744073709551

Furthermore, in the case of MAX_QUOTA, your code is wrong.  The C
compiler treats this as ((long long) ((int) 18446744073709551)), which
is 1271310319; here, you absolutely need the LL suffix, at which point
you no longer need the cast.

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

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


More information about the libvir-list mailing list