[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