WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] 3.0.5-rc3: Creating HVM guest fails with: Cannot allocate me

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] 3.0.5-rc3: Creating HVM guest fails with: Cannot allocate memory
From: "Daniel P. Berrange" <berrange@xxxxxxxxxx>
Date: Fri, 27 Apr 2007 00:12:19 +0100
Delivery-date: Thu, 26 Apr 2007 16:10:56 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Reply-to: "Daniel P. Berrange" <berrange@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.4.1i
I'm testing on the Xen 3.0.5 rc3 (#14934) hypervisor and userspace. On the
whole it looks pretty good - the only significant problem I seeing is that
when booting a fullyvirt guest, the Domain-0 is not being ballooned down
to make room for its memory.

[2007-04-26 18:03:31 2654] ERROR (xmlrpclib2:178) Internal error handling 
xend.domain.create
Traceback (most recent call last):
  File "/usr/lib64/python2.5/site-packages/xen/util/xmlrpclib2.py", line 131, 
in _marshaled_dispatch
    response = self._dispatch(method, params)
  File "/usr/lib64/python2.5/SimpleXMLRPCServer.py", line 415, in _dispatch
    return func(*params)
  File "/usr/lib64/python2.5/site-packages/xen/xend/server/XMLRPCServer.py", 
line 72, in domain_create
    info = XendDomain.instance().domain_create(config)
  File "/usr/lib64/python2.5/site-packages/xen/xend/XendDomain.py", line 914, 
in domain_create
    dominfo = XendDomainInfo.create(config)
  File "/usr/lib64/python2.5/site-packages/xen/xend/XendDomainInfo.py", line 
81, in create
    vm.start()
  File "/usr/lib64/python2.5/site-packages/xen/xend/XendDomainInfo.py", line 
395, in start
    XendTask.log_progress(0, 30, self._constructDomain)
  File "/usr/lib64/python2.5/site-packages/xen/xend/XendTask.py", line 209, in 
log_progress
    retval = func(*args, **kwds)
  File "/usr/lib64/python2.5/site-packages/xen/xend/XendDomainInfo.py", line 
1430, in _constructDomain
    hvm = int(hvm))
Error: (12, 'Cannot allocate memory')

What is interesting is that the start() method does:

             XendTask.log_progress(0, 30, self._constructDomain)
             XendTask.log_progress(31, 60, self._initDomain)

The _constructDomain call is failing in xc.domain_create() - the code which
deals with ballooning down Domain-0 is not even run yet - that lives in
the _initDomain method. So HVM domain creation is failing before XenD has
even had a chance to do ballooning. If I manually use 'xm mem-set' to
balloon down Domain-0 ahead of time, everything works just fine.

I'm at a lose to figure out how to solve this without major re-arranging
of the order of _constructDomain & _initDomain work. Perhaps someone can
figure out an easier fix ?

This is on the x86_64 architecture and the guest config is:

name = "rhel3i386"
builder = "hvm"
memory = "500"
disk = [ 'file:/xen/rhel3i386.img,hda,w', ]
vif = [ 'type=ioemu, mac=00:16:3e:0c:e4:e3, bridge=virbr0', ]
uuid = "06017e0c-4f74-d1d0-017c-def49abd8c9c"
device_model = "/usr/lib64/xen/bin/qemu-dm"
kernel = "/usr/lib/xen/boot/hvmloader"
vnc=1
vncunused=1
apic=1
acpi=0
pae=1
vcpus=1
serial = "pty"
on_reboot   = 'restart'
on_crash    = 'restart'

The domain-0 host info is

# xm info
host                   : celery.virt.boston.redhat.com
release                : 2.6.20-2925.5.fc7ehabkosttestbuild2xen
version                : #1 SMP Thu Apr 26 16:43:56 EDT 2007
machine                : x86_64
nr_cpus                : 2
nr_nodes               : 1
sockets_per_node       : 1
cores_per_socket       : 2
threads_per_core       : 1
cpu_mhz                : 2211
hw_caps                : 
178bfbff:ebd3fbff:00000000:00000010:00002001:00000000:0000001f
total_memory           : 4095
free_memory            : 0
xen_major              : 3
xen_minor              : 0
xen_extra              : .5-rc3-2925.5.f
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 
hvm-3.0-x86_32p hvm-3.0-x86_64 
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : unavailable
cc_compiler            : gcc version 4.1.2 20070424 (Red Hat 4.1.2-11)
cc_compile_by          : brewbuilder
cc_compile_domain      : build.redhat.com
cc_compile_date        : Thu Apr 26 16:40:09 EDT 2007
xend_config_format     : 4

And there is nothing being reported by 'xm dmesg' when the failures
occur.

I've not had a chance to try & reproduce this on i386 yet. Hopefully will
do that tomorrrow.

Regards,
Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel