cgroup2: use CRIU's new freezer v2 support
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 <areber@redhat.com>
This commit is contained in:
parent
4a9e1747da
commit
9a0184b10f
|
@ -1015,9 +1015,14 @@ func (c *linuxContainer) Checkpoint(criuOpts *CriuOpts) error {
|
|||
}
|
||||
}
|
||||
|
||||
fcg := c.cgroupManager.GetPaths()["freezer"]
|
||||
if fcg != "" {
|
||||
rpcOpts.FreezeCgroup = proto.String(fcg)
|
||||
if !cgroups.IsCgroup2UnifiedMode() && c.checkCriuVersion(31400) == nil {
|
||||
// CRIU currently cannot handle the v2 freezer correctly
|
||||
// before release 3.14. For older releases we are telling
|
||||
// CRIU to not use the cgroup v2 freezer. CRIU will pause
|
||||
// each process manually using ptrace().
|
||||
if fcg := c.cgroupManager.GetPaths()["freezer"]; fcg != "" {
|
||||
rpcOpts.FreezeCgroup = proto.String(fcg)
|
||||
}
|
||||
}
|
||||
|
||||
// append optional criu opts, e.g., page-server and port
|
||||
|
|
Loading…
Reference in New Issue