2011/4/1 Eric Blake <eblake(a)redhat.com>:
On 03/31/2011 07:55 PM, Minoru Usui wrote:
> virNodeGetCpuTime: Expose new API
>
> include/libvirt/libvirt.h.in | 26 ++++++++++++++++++++++++++
> src/libvirt_public.syms | 1 +
> 2 files changed, 27 insertions(+), 0 deletions(-)
>
> +/**
> + * virNodeCpuTime:
> + *
> + * a virNodeCpuTime is a structure filled by virNodeGetCpuTime() and providing
> + * the information for the cpu time of Node.
> + */
> +
> +typedef struct _virNodeCpuTime virNodeCpuTime;
> +
> +struct _virNodeCpuTime {
> + unsigned long long user;
> + unsigned long long system;
> + unsigned long long idle;
> + unsigned long long iowait;
> +};
Can we portably get all of this information on Windows? If not, how do
you express which values we don't know how to obtain?
In the context of ESX I vote against this absolute CPU time values.
ESX provides this values relative to a 20 second timeslots with 1 hour
of history. This makes it nearly impossible to obtain the absolute CPU
time. The same problem already exists for the domain's virtual CPU
time.
When you look at virt-top's usage of the domain's virtual CPU time,
you see that it actually doesn't really care about the absolute value,
but deduces the CPU utilization from it. I suggest that we find a
different representation for this information that is not by
definition impossible to implement for ESX.
Matthias