Skip to content
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

Add minimal cgroup2 checkpoint/restore support #2259

Merged
merged 2 commits into from
Mar 31, 2020

Conversation

adrianreber
Copy link
Contributor

The newest CRIU version supports freezer v2 and this tells runc to use it if new enough or fall back to non-freezer based process freezing on cgroup v2 system.

The Travis tests running on Fedora 31 with cgroup2 on Vagrant had the CRIU parts disabled because of a couple of problems.

One problem was a bug in runc and CRIU handling that Andrei fixed in #2226

In addition four patches from the upcoming CRIU 3.14 are needed for minimal cgroup2 support (freezer and mounting of cgroup2). With Andrei's fix and the CRIU cgroup2 support and the runc CRIU cgroup2 integration it is now possible to run the checkpoint integration tests again on the FedoraVagrant cgroup2 based integration test.

This also updates the Dockerfile to use buster instead of stretch for the container (needed for the container to load the modules of the host) as well as updating from Go 1.12 to 1.13.

To run CRIU based tests the modules of Fedora 31 (the test host system) are mounted inside of the container used to test runc in the buster based container with -v /lib/modules:/lib/modules.

.travis.yml Outdated Show resolved Hide resolved
@AkihiroSuda
Copy link
Member

AkihiroSuda commented Mar 17, 2020

LGTM

Approved with PullApprove

@AkihiroSuda AkihiroSuda mentioned this pull request Mar 17, 2020
Copy link
Contributor

@kolyshkin kolyshkin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (not a maintainer)

Copy link
Contributor

@kolyshkin kolyshkin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kolyshkin
Copy link
Contributor

btw @adrianreber can you point me out to patches that add support for cgroupv2 freezer to criu? I probably haven't looked hard enough but I was not able to find those.

.travis.yml Outdated Show resolved Hide resolved
@kolyshkin
Copy link
Contributor

patches that add support for cgroupv2 freezer to criu? I probably haven't looked hard enough but I was not able to find those.

-ENOTENOUGHCOFFEE :-\

Here: checkpoint-restore/criu#939

@adrianreber
Copy link
Contributor Author

@kolyshkin Thanks for the review. I rework this PR to address your review comments.

@AkihiroSuda
Copy link
Member

needs rebase

The newest CRIU version supports freezer v2 and this tells runc
to use it if new enough or fall back to non-freezer based process
freezing on cgroup v2 system.

Signed-off-by: Adrian Reber <[email protected]>
The Travis tests running on Fedora 31 with cgroup2 on Vagrant had the
CRIU parts disabled because of a couple of problems.

One problem was a bug in runc and CRIU handling that Andrei fixed.

In addition four patches from the upcoming  CRIU 3.14 are needed for
minimal cgroup2 support (freezer and mounting of cgroup2). With Andrei's
fix and the CRIU cgroup2 support and the runc CRIU cgroup2 integration
it is now possible the checkpoint integration tests again on the Fedora
Vagrant cgroup2 based integration test.

To run CRIU based tests the modules of Fedora 31 (the test host system)
are mounted inside of the container used to test runc in the buster
based container with -v /lib/modules:/lib/modules.

Signed-off-by: Adrian Reber <[email protected]>
@adrianreber
Copy link
Contributor Author

Rebased and addressed @kolyshkin review comments.

@AkihiroSuda
Copy link
Member

AkihiroSuda commented Mar 31, 2020

LGTM

Approved with PullApprove

1 similar comment
@crosbymichael
Copy link
Member

crosbymichael commented Mar 31, 2020

LGTM

Approved with PullApprove

@crosbymichael crosbymichael merged commit 9ec5b03 into opencontainers:master Mar 31, 2020
@kolyshkin kolyshkin mentioned this pull request Aug 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants