Hey Daniel,
For Xen we get the free memory information from a hypercall. I suspectOn 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?
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 :|