On Tue, Mar 06, 2012 at 10:02:15PM -0700, Eric Blake wrote:
On 03/06/2012 05:10 AM, Richard W.M. Jones wrote:
>
> This all appears to work. I built my own libvirt with the three
> remaining patches and was able to read pCPU information for a running
> domain.
The libvirt side is now pushed.
Rich:
The documentation in libvirt.c correctly says that calling
virDomainGetCPUStats(dom, NULL, 0, 0, 0, 0) must tell you part of the
information needed to compute the size of an array to allocate; but in
v7, the return was off by one too small. But it was generally masked by
the v7 virsh code overallocating to a fixed 128 slots rather than paying
attention to the return value. I fixed both those problems before
pushing the libvirt patches, but since you tested with v7 instead of my
fixed version, you may need to double check that virt-top isn't making
the same mistakes, as it might be a boundary case that only strikes on
machines with 128 physical CPUs.
TBH I found the documentation for virDomainGetCPUStats to be very
confusing indeed. I couldn't really tell if virt-top is calling the
API correctly or not, so I simply used Fujitsu's code directly.
Do you have any comments on whether this is correct or not?
http://git.annexia.org/?p=ocaml-libvirt.git;a=blob;f=libvirt/libvirt_c_on...
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
New in Fedora 11: Fedora Windows cross-compiler. Compile Windows
programs, test, and build Windows installers. Over 70 libraries supprt'd
http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw