[CRIU] ARMv5 implementation
Cyrill Gorcunov
gorcunov at gmail.com
Wed Mar 6 15:24:25 MSK 2019
On Wed, Mar 06, 2019 at 09:47:40AM +0000, Maikel Coenen wrote:
> Hi All,
Hi!
> Currently I am porting CRIU to ARMv5. I have already added/changed some
> code in atomic.h, bitops.S, compel/src/main.c and the Makefile. It is now
> compiling successfully but I get an error when restoring a simple bash
> application. (https://criu.org/Simple_loop)
>
> The error reported is:
>
> (834.884950 Error (criu/cr-restore.c:1433): 359 killed by signal 9: Killed
>
> (834.886002 Error (criu/cr-restore.c:2309): Restoring FAILED.
>
> When debugging with GDB, the following results are shown:
>
> Thread 2.1 "criu" received signal SIGILL, Illegal instruction.
>
> [Switching to Thread 0xb6ff8010 (LWP 359)]
>
> 0x0010ec88 in opts ()
>
>
> And disassembling this address shows:
>
>
> Dump of assembler code for function opts:
...
I've no clue about arm arch but the disasm data looks like
you've jumped into 'data' instead of text code. I would look
rather if addresses where restorer blob is put is somehow
close to addresses you got in disasm. Maybe rt_sigreturn
call didn't passed and you continue execution data which
put after the restorer executable blob.
>
> => 0x0010ec88 <+132>: ff ff ff ff ; <UNDEFINED>
> instruction: 0xffffffff
>
> End of assembler dump.
>
> Obviously something is not going quite right but at this point I am stuck
> how to go further. Probably some instruction is used which is not present
> in the ARMv5 instruction set but I don’t know where to find this
> instruction and which file I have to change. Does anyone know where/how to
> look at this error, so I can continue? Any insight is appreciated.
More information about the CRIU
mailing list