[libvirt-users] [API reference] confused by CPU time term

Zhihua Che zhihua.che at gmail.com
Mon Apr 16 10:02:45 UTC 2012


在 2012年3月28日 下午5:02,Osier Yang <jyang at redhat.com> 写道:
> On 03/28/2012 01:44 PM, Zhihua Che wrote:
>>
>> Hi, everyone
>>     I'm writing a virtual machine monitor based on libvirt. As I read
>> the api reference, I found I'm confused by some terms.
>>
>> 1, What is cumulative I/O wait CPU time?
>>     API reference says that VIR_NODE_CPU_STATS_IOWAIT indicate
>> cumulative I/O wait CPU time.  I'm confused by this time. As far as I
>> know, when cpu meets IO wait situation, it will schedule another task,
>> so, how this IO wait time is accounted?
>
>
> It's from /proc/stat, see man proc (/proc/stat).
>
>
>>
>> 2, How do I get VCPU runtime?
>>     In my mind, VIR_DOMAIN_CPU_STATS_CPUTIME indicates the physical
>> cpu time consumed by the domain. Is there any API by which I can query
>> virtual CPU running stats in one domain?
>
>
> See virDomainGetVcpus, though it doesn't returns the usertime and
> systime seperately, only cputime (usertime + systime) for each
> vCPU thread.
>
> Regards,
> Osier

I guess I miss some important points.

I find that the cpu_time returned by virDomainGetCPUStats is always
increasing despite it's restarted.

Precisely, after calling virDomainGetCPUStats, it return a array of
virTypedParameter, each element for each cpu.
one example is
{
    .fiedl = "cpu_time",
    .type = 4,
    .value.ul = 7744142223
}

I guess this value is cumulative running time of the domain since it's
created? Is that right?




More information about the libvirt-users mailing list