[lxc-devel] lxc on ia64

Daniel Lezcano daniel.lezcano at free.fr
Mon Dec 5 21:12:39 UTC 2011


On 12/01/2011 05:23 PM, Vadym S. Khondar wrote:
> Hello everybody.
>
> Not sure if I am posting on the right list with this question.
>
> I'm interested in project status on ia64 platform.
>
> The latest tar.gzs have a check within configure concerning system where 
> package is being built and ia64 is not there. Minor hack allows to 
> bypass this limitation and build succeeds. However I'm facing problems 
> running then.
> E.g. lxc-start fails with message:
>
> lxc-start: sync wake failure : Broken pipe
> lxc-start: failed to spawn 'devel'
>
> This happens due to child process crash with core.
>
> Program terminated with signal 11, Segmentation fault.
> Core was generated by `/opt/lxc/0.7.5/bin/lxc-start -n devel -l DEBUG'
> Program terminated with signal 11, Segmentation fault.
> #0  0x20000000000751c1 in do_clone (arg=Cannot access memory at address 
> 0x60000fffff90b2f0
> ) at namespace.c:58
> 58	{
> (gdb) bt
> #0  0x20000000000751c1 in do_clone (arg=Cannot access memory at address 
> 0x60000fffff90b2f0
> ) at namespace.c:58
> #1  0x2000000000285d00 in __clone2 () from /lib/libc.so.6.1
> #2  0x0000000000000000 in ?? ()
>
> (This goes from version built without optimisations (no -O2))
>
> Is this solely problem of my setup or, if no, are there plans to make it 
> run on ia64? I could help with testing.
>
> Test platform is: Debian 6.0.3 Linux 2.6.32-5-itanium ia64
>
> Thanks for comments in advance!

Ha! great someone willing to run lxc on itanium :)

Can you try this patch ?

Index: lxc/src/lxc/namespace.c
===================================================================
--- lxc.orig/src/lxc/namespace.c    2011-12-05 22:09:47.117725955 +0100
+++ lxc/src/lxc/namespace.c    2011-12-05 22:11:11.967725935 +0100
@@ -67,13 +67,15 @@ pid_t lxc_clone(int (*fn)(void *), void
     };
 
     long stack_size = sysconf(_SC_PAGESIZE);
-     void *stack = alloca(stack_size) + stack_size;
+     void *stack;
     pid_t ret;
 
 #ifdef __ia64__
+    stack = malloc(stack_size);
     ret = __clone2(do_clone, stack,
                stack_size, flags | SIGCHLD, &clone_arg);
 #else
+    stack = alloca(stack_size) + stack_size;
     ret = clone(do_clone, stack, flags | SIGCHLD, &clone_arg);
 #endif
     if (ret < 0)






More information about the lxc-devel mailing list