[libvirt-users] What features of kernel are required to support virDomainGetCPUStats?

Hi, Weeks ago, I developed my app under ubuntu-11.10 (kernel 3.0) with lilbvirt-0.9.10. In my code , I used virDomainGetCPUStats to query cpu usage info of domains, and it worked well. However, today, I port my code to ubuntu-10.04.4 (kernel 2.6.32) with libvirt-0.9.10, I find the function virDomainGetCPUStats can't work and complains "this function is not supported by the connection driver: virDomainGetCPUStats". I guess the kernel difference cause this problem because the libvirt is the same on two operating systems. I wonder what features of kernel are required to support virDomainGetCPUStats? I thought cgroup is a prerequisite. The following are .config files of two kernels. ubuntu-11.10 CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_CPUACCT=y CONFIG_RESOURCE_COUNTERS=y CONFIG_CGROUP_MEM_RES_CTLR=y CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y CONFIG_CGROUP_PERF=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_RT_GROUP_SCHED=y CONFIG_BLK_CGROUP=y ubuntu-10.04.4 CONFIG_CGROUP_NS=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_CPUACCT=y CONFIG_RESOURCE_COUNTERS=y CONFIG_CGROUP_MEM_RES_CTLR=y CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_RT_GROUP_SCHED=y CONFIG_MM_OWNER=y As you can see, CPUSET and CPUACCT are enabled in both kernels. So what else features of kernel are required to support virDomainGetCPUStats? harvey

On 05/27/2012 10:38 PM, Zhihua Che wrote:
Hi, Weeks ago, I developed my app under ubuntu-11.10 (kernel 3.0) with lilbvirt-0.9.10. In my code , I used virDomainGetCPUStats to query cpu usage info of domains, and it worked well. However, today, I port my code to ubuntu-10.04.4 (kernel 2.6.32) with libvirt-0.9.10, I find the function virDomainGetCPUStats can't work and complains "this function is not supported by the connection driver: virDomainGetCPUStats".
That's not a problem with your kernel, but with your libvirtd being too old. virDomainGetCPUStats was not wired up for qemu until libvirt 0.9.11. See here for the full table of which libvirtd versions support which APIs for a given URI: http://libvirt.org/hvsupport.html -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

Good morning. Apart from accessing the guest's resources usage from virt-manager GUI, there's any other advantage to use this layer rather than use standard OS CPU usage via SNMP OID agent? Regards On 28/05/2012, Eric Blake <eblake@redhat.com> wrote:
On 05/27/2012 10:38 PM, Zhihua Che wrote:
Hi, Weeks ago, I developed my app under ubuntu-11.10 (kernel 3.0) with lilbvirt-0.9.10. In my code , I used virDomainGetCPUStats to query cpu usage info of domains, and it worked well. However, today, I port my code to ubuntu-10.04.4 (kernel 2.6.32) with libvirt-0.9.10, I find the function virDomainGetCPUStats can't work and complains "this function is not supported by the connection driver: virDomainGetCPUStats".
That's not a problem with your kernel, but with your libvirtd being too old. virDomainGetCPUStats was not wired up for qemu until libvirt 0.9.11. See here for the full table of which libvirtd versions support which APIs for a given URI:
http://libvirt.org/hvsupport.html
-- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
-- Sent from my mobile device

2012/5/29 Javi Legido <javi@legido.com>:
Good morning.
Apart from accessing the guest's resources usage from virt-manager GUI, there's any other advantage to use this layer rather than use standard OS CPU usage via SNMP OID agent?
Regards
Actually, I can't understand your question. I query guest's resource using libvirt library, instead of virt-manager...
participants (3)
-
Eric Blake
-
Javi Legido
-
Zhihua Che