[libvirt] [PATCH] bhyve: report cpuTime in bhyveDomainGetInfo

Ján Tomko jtomko at redhat.com
Sun May 4 13:32:47 UTC 2014


On 05/01/2014 02:11 PM, Roman Bogorodskiy wrote:
> Add a helper function virBhyveGetDomainTotalCpuStats() to
> obtain process CPU time using kvm (kernel memory interface)
> and use it to set cpuTime field of the virDomainInfo struct in
> bhyveDomainGetInfo().
> ---
>  configure.ac              |  7 +++++++
>  src/bhyve/bhyve_driver.c  |  9 +++++++++
>  src/bhyve/bhyve_process.c | 40 ++++++++++++++++++++++++++++++++++++++++
>  src/bhyve/bhyve_process.h |  3 +++
>  4 files changed, 59 insertions(+)
> 

> --- a/src/bhyve/bhyve_driver.c
> +++ b/src/bhyve/bhyve_driver.c
> @@ -268,6 +268,15 @@ bhyveDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
>      if (virDomainGetInfoEnsureACL(domain->conn, vm->def) < 0)
>          goto cleanup;
>  
> +    if (virDomainObjIsActive(vm)) {
> +        if (virBhyveGetDomainTotalCpuStats(vm, &(info->cpuTime)) < 0) {
> +            virReportError(VIR_ERR_OPERATION_FAILED,
> +                           "%s", _("Cannot read cputime for domain"));

This will overwrite the error set by virBhyveGetDomainTotalCpuStats.

> +            goto cleanup;
> +        }
> +    } else
> +        info->cpuTime = 0;

This 'else' block should have braces, since the 'if' block has them.

> +
>      info->state = virDomainObjGetState(vm, NULL);
>      info->maxMem = vm->def->mem.max_balloon;
>      info->nrVirtCpu = vm->def->vcpus;

ACK with that fixed.

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/20140504/7d2444a8/attachment-0001.sig>


More information about the libvir-list mailing list