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(a)redhat.com>wrote:
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
:|