[libvirt] [PATCH 1/6] virNodeGetCpuTime: Expose new API

Minoru Usui usui at mxm.nes.nec.co.jp
Mon Apr 4 01:05:29 UTC 2011


Hi, Eric

On Fri, 01 Apr 2011 10:19:20 -0600
Eric Blake <eblake at redhat.com> wrote:

> 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?
> 
> > @@ -593,6 +616,9 @@ int                     virNodeGetInfo          (virConnectPtr conn,
> >                                                   virNodeInfoPtr info);
> >  char *                  virConnectGetCapabilities (virConnectPtr conn);
> >  
> > +int                     virNodeGetCpuTime       (virConnectPtr conn,
> > +                                                 virNodeCpuTimePtr cpu_time);
> > +
> 
> Rather than locking ourselves into yet another inflexible API (no flags
> parameter and a hard-coded struct means no way to extend this if we ever
> come up with some new stat to query), should we instead be following the
> lead of getMemoryParameters which takes a typed-name/value array to pass
> an arbitrary number of parameters, which allows extension without a new API?

OK.
I'll change its user I/F like virDomainGetMemoryParameters(),
if it doesn't return absolute CPU time values.

> > +++ b/src/libvirt_public.syms
> > @@ -434,6 +434,7 @@ LIBVIRT_0.9.0 {
> >          virEventRunDefaultImpl;
> >          virStorageVolDownload;
> >          virStorageVolUpload;
> > +        virNodeGetCpuTime;
> >  } LIBVIRT_0.8.8;
> 
> While I think that something along the lines of this API is appropriate
> for libvirt (indeed, knowing a host's CPU utilization can indeed be a
> factor for upper-level management software in deciding whether to
> migrate another domain on or off of the machine), it's too late to put
> it into 0.9.0.  We'd be setting bad precedent by accepting this after
> the first release candidate did a feature freeze, so you'd need to
> adjust this to 0.9.1.

OK.
I'll change it.

> 
> -- 
> Eric Blake   eblake at redhat.com    +1-801-349-2682
> Libvirt virtualization library http://libvirt.org
> 


-- 
Minoru Usui <usui at mxm.nes.nec.co.jp>




More information about the libvir-list mailing list