On Wed, Apr 15, 2015 at 04:39:10PM +0000, Serge Hallyn wrote:
> Quoting Tycho Andersen (tycho.ander...@canonical.com):
> > On Wed, Apr 15, 2015 at 04:19:54PM +0000, Serge Hallyn wrote:
> > > Quoting Tycho Andersen (tycho.ander...@canonical.com):
> > > > On Wed, Apr 15, 2015 at 03:48:10PM +0000, Serge Hallyn wrote:
> > > > > Quoting Tycho Andersen (tycho.ander...@canonical.com):
> > > > > > CRIU now supports autodetection of external mounts via the 
> > > > > > --ext-mount-map auto
> > > > > > --enable-external-sharing --enable-external-masters options, so we 
> > > > > > don't need
> > > > > > to explicitly pass the cgmanager mount or any of the mounts from 
> > > > > > the config.
> > > > > > This also means that lxcfs mounts (since they are bind mounts from 
> > > > > > outside the
> > > > > > container) are autodetected, meaning that c/r of containers using 
> > > > > > lxcfs works.
> > > > > > 
> > > > > > A further advantage of this patch is that it addresses some of the 
> > > > > > ugliness
> > > > > > that was in the exec_criu() function. There are other criu options 
> > > > > > that will
> > > > > > allow us to trim this even further, though.
> > > > > > 
> > > > > > Finally, with --enable-external-masters, criu understands slave 
> > > > > > mounts in the
> > > > > > container with shared mounts in the peer group that are outside the 
> > > > > > namespace.
> > > > > > This allows containers on a systemd host to be dumped and restored 
> > > > > > correctly.
> > > > > > 
> > > > > > However, these options have just landed in criu trunk today, and 
> > > > > > the next
> > > > > > tagged release will be 1.6 on June 1, so we should avoid merging 
> > > > > > this into any
> > > > > 
> > > > > Ouch, June 1, that's a ways away.
> > > > > 
> > > > > > stable releases until then.
> > > > > 
> > > > > Should there be a lxc_check_criu_version() fn, updated in cases like 
> > > > > these,
> > > > > which ensures that criu is new enough version for the lxc version?
> > > > 
> > > > Yes, I was thinking about this, the only question is how to detect it;
> > > > I can fork() and just pass --version, but then on every checkpoint or
> > > > restore we have an extra fork() in the critical path. Unfortunately, I
> > > 
> > > The critical path of checkpoint/restore?  Isn't that as speedy as 
> > > mollasses
> > > now?
> > 
> > A fair point :)
> > 
> > > You could also cache the result in a global variable (-1 by default)
> > > so only the first lxcapi_checkpoint or lxcapi_restart will invoke the
> > > penalty.
> > 
> > Right, but in the case of e.g. checkpoint it will only ever be called
> 
> That's "/usr/bin/lxc-checkpoint".  But something like lxd using the lxc
> API may benefit.

Ah, good point.

> > once, because as soon as you invoke checkpoint the monitor process
> 
> Oh I was thinking the check would be done in the lxcapi_checkpoint, not
> in the container monitor.  Maybe I'm misunderstanding the current
> c/r architecture.

Actually it might be me misunderstanding. I thought lxcapi_checkpoint
was run from the monitor process, but I just realized that it's not.
Sorry for the noise.

Tycho

> Note also that when criu development slows down we can probably drop that
> check.
> _______________________________________________
> lxc-devel mailing list
> lxc-devel@lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to