On Thu, Dec 03, 2015 at 11:24:08AM +0200, Avi Weit wrote: > Hi, > > We are working on fixing CPU utilization calculation of guests (VMs) in > Ceilometer metering service of OpenStack. > > Per that fix, we retrieve, at the host level, se.statistics.wait_sum (or > se.wait_sum in old versions) Linux kernel schedstat counter of the > KVM/QEMU threads ? that represent the VM. That counter denotes the time in > milliseconds the thread 'wants' to run (but not actually running because > of a contention). > > However, as Daniel Berrange mentioned in the fix review, it would be > better to retrieve that information from libvirt instead and he asked me > to raise this in this mailing list. > > I could not notice that libvirt exposes such a counter. > > It would be very good if virDomainInfo ( > https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainInfo) can be > added with cpuWait in addition to cpuTime it currently has so that cpuWait > will denote the total *time* the VM *wants* to run. > > Adding cpuWait to any other location of domain is fine as well. We can't modify the virDomainInfo struct becase that would be an ABI incompatible change. Fortunately we have a better API that is extensible that we can use - virDomainListGetStats() with the flag VIR_DOMAIN_STATS_VCPU currently returns per-VCPU information - the state (running or not) and the CPU time: # virsh domstats --vcpu demo Domain: 'demo' vcpu.current=3 vcpu.maximum=3 vcpu.0.state=1 vcpu.0.time=107130000000 vcpu.1.state=1 vcpu.1.time=0 vcpu.2.state=1 vcpu.2.time=0 We could easily extend this to add vcpu.NNN.wait=XXXXX data of the kind you request Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list