On Sun, Jan 10, 2010 at 12:30:12AM +0100, storm66@xxxxxxxxxxxxxxxx wrote:
 
Le samedi 09 janvier 2010 à 21:57 +0100, Lennert Van Alboom a écrit :
 
Hello there,
 We (a small hosting community) are running a steadily growing number of Xen 
domUs on a quad dualcore Xeon server with 64GB ram. We've got 100 running 
domUs at the moment. Trying to create a new one results in this error:
Error: (1, 'Internal error', 'launch_vm: SETVCPUCONTEXT failed (rc=-1)\n')
If I shut down another domain, I can create one again, but the limit
 seems to be 100 domUs. 
Each domU has one network interface and one or two disk devices (raid-1
md device consisting of two iscsi luns).
 Version of Xen is rather old: 3.2.1-amd64 (Debian). 
Can anyone give me hint as to what causes this behaviour? The host
machine should be able to cope with the amount of domUs easily. I've got
a feeling I'm bumping into an obscure sourcecode parameter somewhere.
Thanks in advance,
Lennert
 
 
Hello,
In my thought Xen is heavily using loop devices, I had some problems
some years ago with a system running XEN 3.0 with a kernel where the
 default loop max number was too low. 
I didn't get that problem with newer versions.
Regards
JPP
 
 
Thanks for your reply. We're not using loopbacks though - only physical
 devices (raid1 md). 
I've been tracking this problem through the xen source, and found this:
The launch_vm code is located in
http://lxr.mstier.de/Xen/source/xen_3.2.1/tools/libxc/xc_dom_boot.c?v=3.2.1#049
; the function that is causing the return code of -1 is do_domctl.
I'm unsure as to where do_domctl is really located - I've found two
locations:
http://lxr.mstier.de/Xen/source/xen_3.2.1/tools/libxc/xc_private.h?v=3.2.1#099
and
http://lxr.mstier.de/Xen/source/xen_3.2.1/xen/common/domctl.c?v=3.2.1#179
 . Neither give me much of a clue. 
In case of the first definition, the returncode is given by 
ret = do_xen_hypercall(xc_handle, &hypercall)
which leads me further to 
ioctl(xc_handle, cmd, data);
and after that I'm stumped. 
In the second case, the -1 comes *either* from 
IS_PRIV(current->domain)
failing, causing an EPERM error. This sounds unlikely. The other place
 where a -1 could be given is 
ret = xsm_setvcpucontext(d);
which translates back to
xsm_call(setvcpucontext(d));
and there I'm stuck again. I'm totally not capable of deciphering
xsm_ops and its meanings.
Does anyone with some insight in the innards of Xen have a clue on what
might be causing our issues?
Kind regards,
Lennert
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
 
 |