On Tue, Jun 09, 2009 at 06:00:29PM -0400, Hany Fahim wrote:
Hi,
I'm currently running 2 CentOS 5.3 systems, one running Xen 3.3 and 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 :|