[CRIU] [PATCH] crtools: add Dockerfile to build criu on armv7hf, aarch64, ppc64le

Laurent Dufour ldufour at linux.vnet.ibm.com
Mon Feb 15 09:38:53 PST 2016


Hi Andrew,

The root cause of the issue is that signal handler is not properly
handled in the qemu-user version installed from the debian repository.
In this release signal frame was never built when a signal is caught by
the emulated process which is fatal.

I build the qemu-user-ppc64le from the Qemu's git tree and I could
successfully run the docker command to build criu.

It seems to be fixed since Qemu 2.2.0. May be should you change the
extract-deb-pkg script to retrieve an earlier release ?

By the way there is a little typo in the Makefile:

@@ -15,7 +15,7 @@ aarch64: qemu-user-static
        docker build  -t criu-aarch64 -f Dockerfile.aarch64 ../..

 ppc64le: qemu-user-static
-       docker build  -t criu-aarch64 -f Dockerfile.ppc64le ../..
+       docker build  -t criu-ppc64le -f Dockerfile.ppc64le ../..

And I had to add "pkg-config" to the list of the installed package in
the docker's image.

Cheers,
Laurent.

On 12/02/2016 18:00, Andrey Vagin wrote:
> 2016-02-12 6:30 GMT-08:00 Laurent Dufour <ldufour at linux.vnet.ibm.com>:
>> On 12/02/2016 06:54, Andrew Vagin wrote:
>>> This works for arm and aarch64. But it hangs in an
>>> infinite loop in user-space for ppc64le. I think it's a bug in
>>> qemu-ppc64le-static or in the docker image.
>>
>> Hi Andrey,
>>
>> Could you please detail the step to recreate this issue ?
> 
> You need to take an x86_64 host. I use my laptop.
> * clone CRIU sources
> * apply this patch
> * make -C scripts/build/ qemu-user-static
> * make -C scripts/build/ binfmt_misc
> * make -C scripts/build/ ppc64le
> 
> [root at fc22-vm criu]# make -C scripts/build/ ppc64le
> make: Entering directory '/root/git/criu/scripts/build'
> docker build  -t criu-aarch64 -f Dockerfile.ppc64le ../..
> Sending build context to Docker daemon 122.3 MB
> Step 0 : FROM ppc64le/ubuntu
>  ---> 69b49a92565a
> Step 1 : COPY scripts/build/qemu-user-static/usr/bin/qemu-ppc64le-static
> /usr/bin/qemu-ppc64le-static
>  ---> Using cache
>  ---> 153f4eb4452d
> Step 2 : RUN apt-get update
>  ---> Running in 67311bd5eb23
> setup_frame: not implemented
> 
> 
>   959 ?        Ssl    0:01 /usr/bin/docker daemon --selinux-enabled
>  1146 ?        Ss     0:00  \_ /usr/bin/qemu-ppc64le-static /bin/sh -c
> apt-get update
>  1152 ?        S      0:00      \_ /usr/bin/qemu-ppc64le-static
> /usr/bin/apt-get update
>  1156 ?        R      0:54          \_ /usr/bin/qemu-ppc64le-static
> /usr/lib/apt/methods/http
> 
> Thanks,
> Andrew
> 
> 
>>
>> Thanks,
>> Laurent.
>>
> 



More information about the CRIU mailing list