From da4a5a9515eeb213484b7fcea1c1d54a8be080e8 Mon Sep 17 00:00:00 2001 From: Nikolas Sepos Date: Fri, 18 Aug 2017 00:31:49 +0200 Subject: [PATCH] Add AutoDedup option to CriuOpts Memory image deduplication, very useful for incremental dumps. See: https://criu.org/Memory_images_deduplication Signed-off-by: Nikolas Sepos --- libcontainer/container_linux.go | 2 ++ libcontainer/criu_opts_linux.go | 1 + 2 files changed, 3 insertions(+) diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go index cbdfe0d5cbb..186faab0ca6 100644 --- a/libcontainer/container_linux.go +++ b/libcontainer/container_linux.go @@ -811,6 +811,7 @@ func (c *linuxContainer) Checkpoint(criuOpts *CriuOpts) error { FileLocks: proto.Bool(criuOpts.FileLocks), EmptyNs: proto.Uint32(criuOpts.EmptyNs), OrphanPtsMaster: proto.Bool(true), + AutoDedup: proto.Bool(criuOpts.AutoDedup), } fcg := c.cgroupManager.GetPaths()["freezer"] @@ -1012,6 +1013,7 @@ func (c *linuxContainer) Restore(process *Process, criuOpts *CriuOpts) error { FileLocks: proto.Bool(criuOpts.FileLocks), EmptyNs: proto.Uint32(criuOpts.EmptyNs), OrphanPtsMaster: proto.Bool(true), + AutoDedup: proto.Bool(criuOpts.AutoDedup), }, } diff --git a/libcontainer/criu_opts_linux.go b/libcontainer/criu_opts_linux.go index 9423d246428..8f142c9fa5c 100644 --- a/libcontainer/criu_opts_linux.go +++ b/libcontainer/criu_opts_linux.go @@ -34,4 +34,5 @@ type CriuOpts struct { VethPairs []VethPairName // pass the veth to criu when restore ManageCgroupsMode cgMode // dump or restore cgroup mode EmptyNs uint32 // don't c/r properties for namespace from this mask + AutoDedup bool // auto deduplication for incremental dumps }