[libvirt] [PATCH v2 2/3] vz: add vcpu statistics

Dmitry Guryanov dguryanov at odin.com
Thu Jun 25 15:59:31 UTC 2015


On 06/18/2015 12:28 PM, Nikolay Shirokovskiy wrote:
> From: Nikolay Shirokovskiy <nshirokovskiy at parallels.com>
>
> Comments.
>
> Replace vzDomObjFromDomain/virObjectUnlock pair
> to vzDomObjFromDomainRef/virDomainObjEndAPI as we
> use prlsdkGetStatsParam. See previous statistics
> comments.
Looks good to me, ACK.


> Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy at virtuozzo.com>
> ---
>   src/vz/vz_driver.c |   16 ++++++++++++++--
>   1 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
> index deac572..4197569 100644
> --- a/src/vz/vz_driver.c
> +++ b/src/vz/vz_driver.c
> @@ -825,8 +825,9 @@ vzDomainGetVcpus(virDomainPtr domain,
>       size_t i;
>       int v, maxcpu, hostcpus;
>       int ret = -1;
> +    char *name = NULL;
>   
> -    if (!(privdom = vzDomObjFromDomain(domain)))
> +    if (!(privdom = vzDomObjFromDomainRef(domain)))
>           goto cleanup;
>   
>       if (!virDomainObjIsActive(privdom)) {
> @@ -847,8 +848,18 @@ vzDomainGetVcpus(virDomainPtr domain,
>           if (info != NULL) {
>               memset(info, 0, sizeof(*info) * maxinfo);
>               for (i = 0; i < maxinfo; i++) {
> +                long long vcpuTime = 0;
> +
>                   info[i].number = i;
>                   info[i].state = VIR_VCPU_RUNNING;
> +
> +                if (virAsprintf(&name, "guest.vcpu%u.time", (unsigned int)i) < 0)
> +                    goto cleanup;
> +                if (prlsdkGetStatsParam(privdom, name, &vcpuTime) < 0)
> +                    goto cleanup;
> +                if (vcpuTime != -1)
> +                    info[i].cpuTime = vcpuTime;
> +                VIR_FREE(name);
>               }
>           }
>           if (cpumaps != NULL) {
> @@ -871,7 +882,8 @@ vzDomainGetVcpus(virDomainPtr domain,
>   
>    cleanup:
>       if (privdom)
> -        virObjectUnlock(privdom);
> +        virDomainObjEndAPI(&privdom);
> +    VIR_FREE(name);
>       return ret;
>   }
>   


-- 
Dmitry Guryanov




More information about the libvir-list mailing list