From: Tycho Andersen Date: Tue, 19 Jul 2016 20:27:26 +0000 (-0600) Subject: c/r: add support for ghost-limit in CRIU X-Git-Tag: lxc-2.1.0~383^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1089%2Fhead;p=thirdparty%2Flxc.git c/r: add support for ghost-limit in CRIU This is an old option that we probably should have exposed long ago :) Signed-off-by: Tycho Andersen --- diff --git a/src/lxc/criu.c b/src/lxc/criu.c index 804fd41b2..d330d7247 100644 --- a/src/lxc/criu.c +++ b/src/lxc/criu.c @@ -169,6 +169,10 @@ static void exec_criu(struct criu_opts *opts) /* --force-irmap */ if (!opts->user->preserves_inodes) static_args++; + + /* --ghost-limit 1024 */ + if (opts->user->ghost_limit) + static_args += 2; } else if (strcmp(opts->action, "restore") == 0) { /* --root $(lxc_mount_point) --restore-detached * --restore-sibling --pidfile $foo --cgroup-root $foo @@ -300,6 +304,19 @@ static void exec_criu(struct criu_opts *opts) if (!opts->user->preserves_inodes) DECLARE_ARG("--force-irmap"); + if (opts->user->ghost_limit) { + char ghost_limit[32]; + + ret = sprintf(ghost_limit, "%lu", opts->user->ghost_limit); + if (ret < 0 || ret >= sizeof(ghost_limit)) { + ERROR("failed to print ghost limit %lu", opts->user->ghost_limit); + goto err; + } + + DECLARE_ARG("--ghost-limit"); + DECLARE_ARG(ghost_limit); + } + /* only for final dump */ if (strcmp(opts->action, "dump") == 0 && !opts->user->stop) DECLARE_ARG("--leave-running"); diff --git a/src/lxc/lxccontainer.h b/src/lxc/lxccontainer.h index e4915d2ff..06bec58c6 100644 --- a/src/lxc/lxccontainer.h +++ b/src/lxc/lxccontainer.h @@ -902,6 +902,12 @@ struct migrate_opts { * unconditionally disable this feature. In-flight connections are * not fully established TCP connections: SYN, SYN-ACK */ bool disable_skip_in_flight; + + /* This is the maximum file size for deleted files (which CRIU calls + * "ghost" files) that will be handled. 0 indicates the CRIU default, + * which at this time is 1MB. + */ + uint64_t ghost_limit; }; /*!