Skip to content
Please note that GitHub no longer supports Internet Explorer.

We recommend upgrading to the latest Microsoft Edge, Google Chrome, or Firefox.

Learn more
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run all tests on real hardware (without any qemu emulation anymore) #834

Merged
merged 6 commits into from Nov 14, 2019

Conversation

@adrianreber
Copy link
Member

adrianreber commented Nov 4, 2019

This changes the rawhide-aarch64 build and the armv7hf to use Travis aarch64 hardware.

This PR required a few more changes. Docker container can no longer run with --privileged as it is running in an unprivileged LXD container.

The Travis aarch64 system has uname of armv8l when running under setarch linux32. To enable arm32 builds I added armv8l detection to the Makefile. If it is an armv8l system CRIU will be built just as for an armv7hf system. Not verified that the output binary actually works. Only used for compilation tests.

@adrianreber

This comment has been minimized.

Copy link
Member Author

adrianreber commented Nov 4, 2019

Something went wrong with my branches. Need to rebase.

@adrianreber adrianreber force-pushed the adrianreber:travis branch from a8cab42 to 9de00f3 Nov 4, 2019
@adrianreber

This comment has been minimized.

Copy link
Member Author

adrianreber commented Nov 4, 2019

The ppc64le build timed out. I thought I was able to restart builds in Travis, but the button to restart the build is gone.

@avagin avagin force-pushed the checkpoint-restore:criu-dev branch from b204e54 to 2a36fda Nov 4, 2019
@adrianreber adrianreber force-pushed the adrianreber:travis branch from 9de00f3 to 897182f Nov 5, 2019
@adrianreber

This comment has been minimized.

Copy link
Member Author

adrianreber commented Nov 5, 2019

The ppc64le job without CLANG takes 50 minutes and the ppc64le job with CLANG takes only 20 minutes. As 50 minutes is the maximum Travis runtime for a test we seem to hit this more often.

It is interesting that the same test requires less than half the time with CLANG=1.

Makefile Outdated Show resolved Hide resolved
@adrianreber

This comment has been minimized.

Copy link
Member Author

adrianreber commented Nov 12, 2019

And now there is also support for ppc64le and s390 from Travis: https://blog.travis-ci.com/2019-11-12-multi-cpu-architecture-ibm-power-ibm-z

Now we can drop emulation for all arches.

adrianreber added 2 commits Nov 4, 2019
In my previous commit I copied a line with a return into the main script
body. bash can only return from functions. This changes return to exit.

Signed-off-by: Adrian Reber <areber@redhat.com>
Travis uses unprivileged containers for aarch64 in LXD. Docker with
'--privileged' fails in such situation. This changes the travis setup
to only start docker with '--privileged' if running on x86_64.

Signed-off-by: Adrian Reber <areber@redhat.com>
@adrianreber adrianreber force-pushed the adrianreber:travis branch from 897182f to b087377 Nov 13, 2019
@adrianreber

This comment has been minimized.

Copy link
Member Author

adrianreber commented Nov 13, 2019

I tried the s390x and ppc64le support here: https://travis-ci.org/adrianreber/criu/builds/611253563

s390x test times are done from 18 minutes to 41 seconds.

ppc64le from 20 minutes (sometime 50 minutes) to less than 2 minutes.

@adrianreber

This comment has been minimized.

Copy link
Member Author

adrianreber commented Nov 13, 2019

Restarting the ppc64le test. Time out after 50 minutes.

@0x7f454c46

This comment has been minimized.

Copy link
Member

0x7f454c46 commented Nov 13, 2019

I tried the s390x and ppc64le support here: https://travis-ci.org/adrianreber/criu/builds/611253563
s390x test times are done from 18 minutes to 41 seconds.
ppc64le from 20 minutes (sometime 50 minutes) to less than 2 minutes.

That's very promising, would you send patches/PR?
I'm eager to Ack them, haha

@0x7f454c46

This comment has been minimized.

Copy link
Member

0x7f454c46 commented Nov 13, 2019

Restarting the ppc64le test. Time out after 50 minutes.

I don't think it's a problem with this PR - I have added include compiler.h in some other patches set and it times out on ppc64 by the same reason (on criu-dev it passes with 30 sec margin to 50 mins, which is very narrow).

@adrianreber

This comment has been minimized.

Copy link
Member Author

adrianreber commented Nov 13, 2019

That's very promising, would you send patches/PR?

Patches are ready and I will open a new PR as soon as this one is merged.

adrianreber added 4 commits Nov 4, 2019
For CRIU's compile only tests for armv7hf on Travis we are using
'setarch linux32' which returns armv8l on Travis aarch64.

This adds a path in the Makefile to treat armv8l just as armv7hf during
compile. This enables us to run armv7hf compile tests on Travis aarch64
hardware. Much faster. Maybe not entirely correct, but probably good
enough for compile testing in an armv7hf container.

Signed-off-by: Adrian Reber <areber@redhat.com>
This switches all arm related tests (32bit and 64bit) to the aarch64
systems Travis provides. For arm32 we are running in a armv7hf container
on aarch64 with 'setarch linux32'.

The main changes are that docker on Travis aarch64 cannot use
'--privileged' as Travis is using unprivileged LXD containers to setup
the testing environment.

Signed-off-by: Adrian Reber <areber@redhat.com>
Now that Travis also supports ppc64le and s390x we can remove all qemu
based docker emulation from our test setup. This now runs ppc64le and
s390x tests on real hardware (LXD containers).

Signed-off-by: Adrian Reber <areber@redhat.com>
Tests are successful even after removing 'group:' from .travis.yml.
Apparently it is not necessary.

Signed-off-by: Adrian Reber <areber@redhat.com>
@adrianreber adrianreber force-pushed the adrianreber:travis branch from b087377 to 43b3de4 Nov 14, 2019
@adrianreber adrianreber changed the title Use aarch64 builders for all arm related testing Run all tests on real hardware (without any qemu emulation anymore) Nov 14, 2019
@adrianreber

This comment has been minimized.

Copy link
Member Author

adrianreber commented Nov 14, 2019

I included the ppc64le and s390x changes also in this PR.

@adrianreber

This comment has been minimized.

Copy link
Member Author

adrianreber commented Nov 14, 2019

@alicefr : just as an FYI, the s390x test case is now running on real hardware, without qemu emulation. (as discussed previously)

@alicefr

This comment has been minimized.

Copy link
Contributor

alicefr commented Nov 14, 2019

@adrianreber thanks! Great news :)

@avagin avagin merged commit 428a21d into checkpoint-restore:criu-dev Nov 14, 2019
1 check was pending
1 check was pending
continuous-integration/travis-ci/pr The Travis CI build is in progress
Details
@avagin

This comment has been minimized.

Copy link
Member

avagin commented Nov 14, 2019

Applied. Thanks a lot!
great-job-graphics-2416-greatjob

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.