[lxc-devel] [PATCH 1/2] c/r: use --restore-sibling option in CRIU

Serge Hallyn serge.hallyn at ubuntu.com
Mon Sep 15 18:25:55 UTC 2014


Quoting Tycho Andersen (tycho.andersen at canonical.com):
> On Fri, Sep 12, 2014 at 11:07:14PM +0000, Serge Hallyn wrote:
> > Quoting Tycho Andersen (tycho.andersen at canonical.com):
> > > In order for LXC to be the parent of the restored process, CRIU needs to
> > > restore init as its sibling, not as its child. This was previously accomplished
> > > essentially via luck :). CRIU now has a --restore-sibling option which forces
> > > this behavior that LXC expects. See more discussion in this thread:
> > > http://lists.openvz.org/pipermail/criu/2014-September/thread.html#16330
> > > 
> > > Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
> > 
> > Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>
> 
> After looking through some logs, it is a little cleaner to do it as
> below, instead of what I originally posted.

Yup, looks good, thanks.

> Tycho
> 
> 
> 
> In order for LXC to be the parent of the restored process, CRIU needs to
> restore init as its sibling, not as its child. This was previously accomplished
> essentially via luck :). CRIU now has a --restore-sibling option which forces
> this behavior that LXC expects. See more discussion in this thread:
> http://lists.openvz.org/pipermail/criu/2014-September/thread.html#16330
> 
> v2: don't pass --restore-sibling to dump. This is mostly cosmetic, but will
>     look less confusing in the logs if people ever look at them.
> 
> Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
> Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>
> ---
>  src/lxc/lxccontainer.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c
> index ff5167a..880055e 100644
> --- a/src/lxc/lxccontainer.c
> +++ b/src/lxc/lxccontainer.c
> @@ -3562,8 +3562,8 @@ static void exec_criu(struct criu_opts *opts)
>  		if (!opts->stop)
>  			static_args++;
>  	} else if (strcmp(opts->action, "restore") == 0) {
> -		/* --root $(lxc_mount_point) --restore-detached --pidfile $foo */
> -		static_args += 5;
> +		/* --root $(lxc_mount_point) --restore-detached --restore-sibling --pidfile $foo */
> +		static_args += 6;
>  	} else {
>  		return;
>  	}
> @@ -3629,6 +3629,7 @@ static void exec_criu(struct criu_opts *opts)
>  		DECLARE_ARG("--root");
>  		DECLARE_ARG(opts->c->lxc_conf->rootfs.mount);
>  		DECLARE_ARG("--restore-detached");
> +		DECLARE_ARG("--restore-sibling");
>  		DECLARE_ARG("--pidfile");
>  		DECLARE_ARG(opts->pidfile);
>  
> -- 
> 1.9.1
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel


More information about the lxc-devel mailing list