
Hey Daniel, Here is the output of 'xm list' from both machines: Xen 3.0.3 - This machine has 2GB total memory and should report 256MB free: [root@node2 ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 997 1 r----- 31431.7 test1 74 255 1 -b---- 2412.4 test2 73 511 1 -b---- 2434.3 Xen 3.3 - This machine has 3GB total memory and should report 0MB free: [root@node1 ~]# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 2901 2 r----- 588.5 Both machines are i386 architecture. Here's the output of the getCellsFreeMemory call: Xen 3.0.3: [root@node2 ~]# python Python 2.4.3 (#1, Jan 21 2009, 01:10:13) [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import libvirt conn = libvirt.open('xen:///') print(conn.getCellsFreeMemory(0,10)) [268972032L]
Xen 3.3: [root@node1 ~]# python Python 2.4.3 (#1, Jan 21 2009, 01:10:13) [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import libvirt conn = libvirt.open('xen:///') print(conn.getCellsFreeMemory(0,10)) [576460752303423488L]
I appreciate the help. Hany On Wed, Jun 10, 2009 at 6:24 AM, Daniel P. Berrange <berrange@redhat.com>wrote:
Hi, I'm currently running 2 CentOS 5.3 systems, one running Xen 3.3 and
On Tue, Jun 09, 2009 at 06:00:29PM -0400, Hany Fahim wrote: libvirt
0.6.4 (called node1) and the other running Xen 3.0.3 (stock CentOS) and libvirt 0.6.4 (called node2). The machines are practically identical except for the upgraded Xen installation. When using the libvirt-python module, I'm getting strange values from getFreeMemory() on the Xen 3.3 machine. See below:
Xen 3.0.3:
[root@node2 ~]# python Python 2.4.3 (#1, Jan 21 2009, 01:10:13) [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import libvirt conn = libvirt.open('xen:///') print(conn.getFreeMemory()) 268959744
Which is correct since there's approximately 256MB free. Now in the Xen 3.3 box:
Xen 3.3:
[root@node1 ~]# python Python 2.4.3 (#1, Jan 21 2009, 01:10:13) [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import libvirt conn = libvirt.open('xen:///') print(conn.getFreeMemory()) 576460752303423488
node1 should actually be reporting 0MB free, but instead I'm getting this huge number. It would be nice if I had this much memory though... Anybody else run into this?
For Xen we get the free memory information from a hypercall. I suspect that Xen 3.3 has changed the hypercall ABI in some way that is tripping up libvirt. Can you provide the output of 'xm info' for the 2 machines you have. Also what architecture are they ?
Also can you check the per-node info with print(conn.getCellsFreeMemory(0,10))
Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/:| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org:| |: http://autobuild.org -o- http://search.cpan.org/~danberr/:| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|