[libvirt] PATCH: 2/3: Implement schedular params for QEMU
Daniel Veillard
veillard at redhat.com
Fri Feb 27 15:31:35 UTC 2009
On Thu, Feb 26, 2009 at 04:40:18PM +0000, Daniel P. Berrange wrote:
> This patch implements the schedular parameter APIs. This adds a
> single tunable 'cpu_shares' that is provided by cgroups. This is
> a slightly more fancy way of doing nice priorities, giving a way
> to tune relative priority of VMs
The scheduler API is one of the parts I'm most afraid of from an
API perspective...
[...]
> +static int qemuSetSchedulerParameters(virDomainPtr domain,
> + virSchedParameterPtr params,
> + int nparams)
[...]
> + for (i = 0; i < nparams; i++) {
> + virSchedParameterPtr param = ¶ms[i];
> +
> + if (STREQ(param->field, "cpu_shares")) {
I think we should also check param->type to be of type
VIR_DOMAIN_SCHED_FIELD_ULLONG before passing value.ui
> + if (virCgroupSetCpuShares(group, params[i].value.ui) != 0)
maybe use param->value.ui since we have a pointer handy, avoid
index trouble if the code evolves.
> + goto cleanup;
> + } else {
> + qemudReportError(domain->conn, domain, NULL, VIR_ERR_INVALID_ARG,
> + _("Invalid parameter `%s'"), param->field);
> + goto cleanup;
> + }
> + }
> + ret = 0;
Patch looks fine otherwise,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list