From: Louis Rilling <Louis.Rilling@kerlabs.com>
To: Oren Laadan <orenl@cs.columbia.edu>
Cc: Andrey Mirkin <major@openvz.org>,
Dave Hansen <dave@linux.vnet.ibm.com>,
"Serge E. Hallyn" <serue@us.ibm.com>,
Cedric Le Goater <clg@fr.ibm.com>,
Daniel Lezcano <dlezcano@fr.ibm.com>,
containers@lists.linux-foundation.org,
linux-kernel@vger.kernel.org
Subject: Re: [Devel] Re: [PATCH 0/9] OpenVZ kernel based checkpointing/restart
Date: Thu, 30 Oct 2008 19:14:18 +0100 [thread overview]
Message-ID: <20081030181418.GO15171@hawkmoon.kerlabs.com> (raw)
In-Reply-To: <4909F2B5.7040907@cs.columbia.edu>
[-- Attachment #1: Type: text/plain, Size: 3710 bytes --]
On Thu, Oct 30, 2008 at 01:45:25PM -0400, Oren Laadan wrote:
>
>
> Louis Rilling wrote:
> > In Kerrighed this is kernel-based, and will remain kernel-based because we
> > checkpoint a distributed task tree, and want to restart it as mush as possible
> > with the same distribution. The distributed protocol used for restart is
> > currently too fragile and complex to rely on customized user-space
> > implementations. That said, if someone brings very good arguments in favor of
> > userspace implementations, we might consider changing this.
>
> Zap also has distributed checkpoint which does not require strict
> kernel-side ordering. Do you need that because you do SSI ?
Yes. Tasks from different nodes have parent-children, session leader, etc.
relationships, and the distributed management of struct pid lifecycle is a bit
touchy too. By the way, splitting the checkpoint image in one file for each task
helps us a lot to make restart parallel, because it is more efficient for the file
system to handle parallel reads of different files from different nodes than
parallel reads on a single file descriptor from different nodes.
>
> >
> > Without taking distributed restart into account, I also tend to prefer
> > kernel-based, mainly for two (not so strong) reasons:
> > 1) this prevents userspace from doing weird things, like changing the task tree
> > and let the kernel detect it and deal with the mess this creates (think about
> > two threads being restarted in separate processes that do not even share their
> > parents). But one can argue that userspace can change the checkpoint image as
> > well, so that the kernel must check for such weird things anyway.
>
> I don't really buy this argument. First, as you say, user can change
> the checkpoint image file. Second, you can verify in the kernel that
> the real relationships of the processes match those specified (and
> expected from) the image file. That's pretty straightforward.
>
> > 2) restart will be more efficient with respect to shared objects.
>
> Can you elaborate on this ? In what sense "more efficient" ?
>
> Note that the topic in question is not whether to do the entire restart
> from user space (and I argue that most work should be done in the kernel),
> but rather whether process creation (and only that) should be done in
> kernel or user space.
See my answer to Dave.
>
> Quick thoughts of pros/cons of each approach are:
>
> user space:
>
> + re-use existing api (fork)
> + easier to debug
> + will allow 'handmade' resources restart: it was mentioned before that
> one may want to reattach stdout to a different place after restart; a
> user based restart of processes can make this much easier: e.g. the
> user process can create the alternative resources, give them to the
> kernel and only then call sys_restart)
> + arch-independent code
>
> - a bit slower than in kernel space
> - requires a clone-with-specific-pid syscall or interface
>
> kernel space:
>
> + a bit easier to control everything
> + a bit faster than user space
> + no need for user-visible interface for clone-with-...
>
> - arch-dependent code
> - needs special code to fight 'fork-bomb'
>
> So, I'm not convinced, and I even think there may be room to both, for
> the time being. I volunteer to support the user-space alternative while
> we make up our minds.
Yes, I hope that investigating both approaches will give us stronger arguments.
Louis
--
Dr Louis Rilling Kerlabs
Skype: louis.rilling Batiment Germanium
Phone: (+33|0) 6 80 89 08 23 80 avenue des Buttes de Coesmes
http://www.kerlabs.com/ 35700 Rennes
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2008-10-30 18:14 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-03 10:57 Andrey Mirkin
2008-09-03 10:57 ` [PATCH 1/9] Introduce trivial sys_checkpoint and sys_restore system calls Andrey Mirkin
2008-09-03 10:57 ` [PATCH 2/9] Make checkpoint/restart functionality modular Andrey Mirkin
2008-09-03 10:57 ` [PATCH 3/9] Introduce context structure needed during checkpointing/restart Andrey Mirkin
2008-09-03 10:57 ` [PATCH 4/9] Introduce container dump function Andrey Mirkin
2008-09-03 10:57 ` [PATCH 5/9] Introduce function to dump process Andrey Mirkin
2008-09-03 10:57 ` [PATCH 6/9] Introduce functions to dump mm Andrey Mirkin
2008-09-03 10:57 ` [PATCH 7/9] Introduce function for restarting a container Andrey Mirkin
2008-09-03 10:57 ` [PATCH 8/9] Introduce functions to restart a process Andrey Mirkin
2008-09-03 10:57 ` [PATCH 9/9] Introduce functions to restore mm Andrey Mirkin
2008-09-03 14:32 ` [PATCH 8/9] Introduce functions to restart a process Louis Rilling
2008-09-13 17:34 ` Pavel Machek
2008-09-03 14:17 ` [PATCH 6/9] Introduce functions to dump mm Louis Rilling
2008-09-03 14:23 ` [PATCH 4/9] Introduce container dump function Serge E. Hallyn
2008-09-03 14:45 ` Andrey Mirkin
2008-09-03 12:29 ` [PATCH 3/9] Introduce context structure needed during checkpointing/restart Matthieu Fertré
2008-09-03 14:11 ` Andrey Mirkin
2008-09-03 13:56 ` Louis Rilling
2008-09-03 14:07 ` Andrey Mirkin
2008-09-03 14:13 ` Cedric Le Goater
2008-09-03 14:29 ` Andrey Mirkin
2008-09-03 14:27 ` [PATCH 2/9] Make checkpoint/restart functionality modular Serge E. Hallyn
2008-09-03 14:51 ` Andrey Mirkin
2008-09-03 11:44 ` [PATCH 1/9] Introduce trivial sys_checkpoint and sys_restore system calls Cedric Le Goater
2008-09-03 13:05 ` [Devel] " Andrey Mirkin
2008-09-03 12:28 ` [PATCH 0/9] OpenVZ kernel based checkpointing/restart Cedric Le Goater
2008-09-03 13:59 ` [Devel] " Andrey Mirkin
2008-09-04 22:55 ` Dave Hansen
2008-09-03 14:18 ` Serge E. Hallyn
2008-09-03 13:49 ` Louis Rilling
2008-09-03 14:06 ` Louis Rilling
2008-09-03 14:19 ` Andrey Mirkin
2008-09-03 14:26 ` Cedric Le Goater
2008-09-03 14:53 ` Andrey Mirkin
2008-09-04 8:14 ` Oren Laadan
2008-09-04 14:05 ` Dave Hansen
2008-10-17 23:33 ` Dave Hansen
2008-10-20 11:10 ` Louis Rilling
2008-10-20 13:25 ` Daniel Lezcano
2008-10-20 13:48 ` Cedric Le Goater
2008-10-20 13:49 ` Daniel Lezcano
2008-10-20 15:53 ` Oren Laadan
2008-10-20 16:37 ` Daniel Lezcano
2008-10-20 17:23 ` Serge E. Hallyn
2008-10-21 0:18 ` Oren Laadan
2008-10-21 0:58 ` Serge E. Hallyn
2008-10-21 13:24 ` Daniel Lezcano
2008-10-27 14:45 ` [Devel] " Andrey Mirkin
2008-10-20 16:51 ` Serge E. Hallyn
2008-10-21 9:36 ` Cedric Le Goater
2008-10-20 16:36 ` Dave Hansen
2008-10-20 12:14 ` [Devel] " Andrey Mirkin
2008-10-20 15:55 ` Dave Hansen
2008-10-27 14:07 ` Andrey Mirkin
2008-10-27 14:39 ` Oren Laadan
2008-10-30 6:02 ` Andrey Mirkin
2008-10-30 11:47 ` Louis Rilling
2008-10-30 17:08 ` Dave Hansen
2008-10-30 18:01 ` Louis Rilling
2008-10-30 18:28 ` Oren Laadan
2008-10-30 17:45 ` Oren Laadan
2008-10-30 18:14 ` Louis Rilling [this message]
2008-10-30 18:32 ` Oren Laadan
2008-10-31 10:37 ` Louis Rilling
2008-10-30 14:08 ` Serge E. Hallyn
2008-10-30 17:03 ` Dave Hansen
2008-11-03 19:35 ` Oren Laadan
2008-10-20 17:17 ` Oren Laadan
2008-10-27 14:38 ` Andrey Mirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081030181418.GO15171@hawkmoon.kerlabs.com \
--to=louis.rilling@kerlabs.com \
--cc=clg@fr.ibm.com \
--cc=containers@lists.linux-foundation.org \
--cc=dave@linux.vnet.ibm.com \
--cc=dlezcano@fr.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=major@openvz.org \
--cc=orenl@cs.columbia.edu \
--cc=serue@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®