From: Oren Laadan <orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
Theodore Tso <tytso-3s7WtUTddSA@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Dave Hansen
<dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Subject: Re: [RFC][PATCH 0/4] kernel-based checkpoint restart
Date: Fri, 08 Aug 2008 15:44:26 -0400 [thread overview]
Message-ID: <489CA21A.4060009@cs.columbia.edu> (raw)
In-Reply-To: <200808081125.12706.arnd-r2nGTMty4D4@public.gmane.org>
Hi,
Arnd Bergmann wrote:
> On Friday 08 August 2008, Dave Hansen wrote:
>> These patches are from Oren Laaden. I've refactored them
>> a bit to make them a wee bit more reviewable. I think this
>> separates out the per-arch bits pretty well. It should also
>> be at least build-bisetable.
>
> Cool stuff
>
Thanks. This is a proof of concept so all sorts of feedback are
definitely welcome. Some of the ideas and discussions are found
around:
http://wiki.openvz.org/Containers/Mini-summit_2008
and the notes:
http://wiki.openvz.org/Containers/Mini-summit_2008_notes
and the archives of the linux containers mailing list:
https://lists.linux-foundation.org/pipermail/containers/
(August and July).
Several aspects of the implementation are still experimental and
I expect them to evolve with the feedback. In particular, expect
the specific user interface (syscalls) and the checkpoint image
format to be moving targets.
>> ============================== ckpt.c ================================
>>
>> #define _GNU_SOURCE /* or _BSD_SOURCE or _SVID_SOURCE */
>>
>> #include <stdio.h>
>> #include <stdlib.h>
>> #include <errno.h>
>> #include <fcntl.h>
>> #include <unistd.h>
>> #include <asm/unistd_32.h>
>> #include <sys/syscall.h>
>
> Note that asm/unistd_32.h is not portable, you should use asm/unistd.h
> in the example.
>
>> pid_t pid = getpid();
>> int ret;
>>
>> ret = syscall(__NR_checkpoint, pid, STDOUT_FILENO, 0);
>
> Interface-wise, I would consider checkpointing yourself signficantly
> different from checkpointing some other thread. If checkpointing
> yourself is the common case, it probably makes sense to allow passing
> of pid=0 for this.
>
The checkpoint/restart code is meant to checkpoint a whole container,
that is be able to save the state of multiple other tasks. The same
code can also be used to checkpoint yourself fairly easily with minimal
changes (see comments in the code about "in context" checkpoint/restart
that take care of this).
I suggest to keep the interface as is in the sense that the pid will
identify the target container (e.g. the pid of the init process of that
container).
Then, pid=0 would mean "the container to which I belong" if
you are inside a container (and therefore don't know the pid of the
init process there).
Finally, to checkpoint yourself, you would set the a bit in the flags
argument to something like CR_CKPT_MYSELF. Such a flag will be needed
internally anyway to special-case self checkpoint where appropriate.
Comments are welcome.
Oren.
next prev parent reply other threads:[~2008-08-08 19:44 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080807224033.FFB3A2C1@kernel>
2008-08-07 22:40 ` [RFC][PATCH 1/4] checkpoint-restart: general infrastructure Dave Hansen
2008-08-07 22:40 ` [RFC][PATCH 2/4] checkpoint/restart: x86 support Dave Hansen
2008-08-07 22:40 ` [RFC][PATCH 3/4] checkpoint/restart: memory management Dave Hansen
2008-08-07 22:40 ` [RFC][PATCH 4/4] introduce sys_checkpoint and sys_restore Dave Hansen
2008-08-08 9:25 ` [RFC][PATCH 0/4] kernel-based checkpoint restart Arnd Bergmann
[not found] ` <1218218784.19082.10.camel@nimitz>
2008-08-08 18:18 ` Arnd Bergmann
[not found] ` <200808081125.12706.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-08 18:06 ` Dave Hansen
2008-08-08 19:44 ` Oren Laadan [this message]
[not found] ` <20080807224035.E56663BF@kernel>
2008-08-08 12:09 ` [RFC][PATCH 2/4] checkpoint/restart: x86 support Arnd Bergmann
[not found] ` <200808081409.30591.arnd@arndb.de>
[not found] ` <200808081409.30591.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-08 20:28 ` Oren Laadan
[not found] ` <489CAC70.7090809-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-08 22:29 ` Arnd Bergmann
[not found] ` <200808090029.28286.arnd@arndb.de>
[not found] ` <200808090029.28286.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-08 23:04 ` Oren Laadan
[not found] ` <489CD0F9.9060603@cs.columbia.edu>
[not found] ` <1218242286.19082.62.camel@nimitz>
2008-08-09 1:20 ` Oren Laadan
[not found] ` <489CF0CE.1000603@cs.columbia.edu>
[not found] ` <489CF0CE.1000603-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-09 2:20 ` Dave Hansen
[not found] ` <1218248458.19082.68.camel@nimitz>
2008-08-09 2:35 ` Oren Laadan
2008-08-10 14:55 ` Jeremy Fitzhardinge
[not found] ` <489F015E.9080704@goop.org>
[not found] ` <489F015E.9080704-TSDbQ3PG+2Y@public.gmane.org>
2008-08-11 15:36 ` Dave Hansen
[not found] ` <1218468964.5598.3.camel@nimitz>
2008-08-11 16:07 ` Jeremy Fitzhardinge
[not found] ` <489CD0F9.9060603-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-09 0:38 ` Dave Hansen
2008-08-09 6:43 ` Arnd Bergmann
[not found] ` <20080807224037.44DA0DB8@kernel>
2008-08-08 12:12 ` [RFC][PATCH 3/4] checkpoint/restart: memory management Arnd Bergmann
[not found] ` <20080807224038.0B03CEEF@kernel>
2008-08-08 12:15 ` [RFC][PATCH 4/4] introduce sys_checkpoint and sys_restore Arnd Bergmann
[not found] ` <200808081415.19179.arnd@arndb.de>
[not found] ` <200808081415.19179.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-08 20:33 ` Oren Laadan
[not found] ` <20080807224034.735B1F84@kernel>
2008-08-08 9:46 ` [RFC][PATCH 1/4] checkpoint-restart: general infrastructure Arnd Bergmann
[not found] ` <200808081146.54834.arnd@arndb.de>
[not found] ` <200808081146.54834.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-08 18:50 ` Dave Hansen
[not found] ` <1218221451.19082.36.camel@nimitz>
2008-08-08 20:59 ` Oren Laadan
2008-08-08 22:13 ` Arnd Bergmann
[not found] ` <200808090013.41999.arnd@arndb.de>
[not found] ` <200808090013.41999.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-08 22:26 ` Dave Hansen
2008-08-11 15:22 ` Serge E. Hallyn
[not found] ` <1218234411.19082.58.camel@nimitz>
2008-08-08 22:39 ` Arnd Bergmann
[not found] ` <200808090039.20289.arnd@arndb.de>
[not found] ` <200808090039.20289.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-09 0:43 ` Dave Hansen
[not found] ` <1218242614.19082.65.camel@nimitz>
2008-08-09 6:37 ` Arnd Bergmann
[not found] ` <200808090837.07417.arnd@arndb.de>
[not found] ` <200808090837.07417.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-09 13:39 ` Dave Hansen
2008-08-11 15:07 ` Serge E. Hallyn
[not found] ` <20080811150703.GA25930@us.ibm.com>
[not found] ` <20080811150703.GA25930-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-08-11 15:25 ` Arnd Bergmann
2008-08-14 5:53 ` Pavel Machek
[not found] ` <20080814055301.GH6995@ucw.cz>
[not found] ` <20080814055301.GH6995-+ZI9xUNit7I@public.gmane.org>
2008-08-14 15:12 ` Dave Hansen
2008-08-20 21:40 ` Oren Laadan
[not found] ` <20080811152201.GB25930@us.ibm.com>
[not found] ` <20080811152201.GB25930-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-08-11 16:53 ` Arnd Bergmann
[not found] ` <200808111853.13854.arnd@arndb.de>
[not found] ` <200808111853.13854.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-11 17:11 ` Dave Hansen
2008-08-11 19:48 ` checkpoint/restart ABI Dave Hansen
[not found] ` <1218484114.5598.43.camel@nimitz>
2008-08-11 21:47 ` Arnd Bergmann
2008-08-11 21:54 ` Oren Laadan
[not found] ` <200808112347.50245.arnd@arndb.de>
[not found] ` <200808112347.50245.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-11 23:14 ` Jonathan Corbet
2008-08-21 5:56 ` Oren Laadan
[not found] ` <48AD0379.9030705-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-21 8:43 ` Arnd Bergmann
[not found] ` <200808211043.41387.arnd@arndb.de>
[not found] ` <200808211043.41387.arnd-r2nGTMty4D4@public.gmane.org>
2008-08-21 15:43 ` Oren Laadan
[not found] ` <20080811171433.2ce81f28@bike.lwn.net>
[not found] ` <20080811171433.2ce81f28-vw3g6Xz/EtPk1uMJSBkQmQ@public.gmane.org>
2008-08-11 23:23 ` Dave Hansen
2008-08-11 23:38 ` Jeremy Fitzhardinge
[not found] ` <48A0CD86.6030704@goop.org>
[not found] ` <48A0CD86.6030704-TSDbQ3PG+2Y@public.gmane.org>
2008-08-11 23:54 ` Peter Chubb
2008-08-12 14:58 ` Dave Hansen
[not found] ` <87d4kfds5i.wl%peterc@chubb.wattle.id.au>
[not found] ` <87d4kfds5i.wl%peterc-LkDQP0DxSMGxwJ88Py/mJxCuuivNXqWP@public.gmane.org>
2008-08-12 14:49 ` Serge E. Hallyn
2008-08-12 15:11 ` Dave Hansen
[not found] ` <20080812144905.GA16016@us.ibm.com>
[not found] ` <20080812144905.GA16016-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-08-28 23:40 ` Eric W. Biederman
[not found] ` <1218553091.5598.76.camel@nimitz>
2008-08-12 16:32 ` Jeremy Fitzhardinge
[not found] ` <48A1BB39.3090108@goop.org>
[not found] ` <48A1BB39.3090108-TSDbQ3PG+2Y@public.gmane.org>
2008-08-12 16:46 ` Dave Hansen
[not found] ` <1218559619.5598.97.camel@nimitz>
2008-08-12 17:04 ` Jeremy Fitzhardinge
[not found] ` <48A1C2B9.9070107@goop.org>
[not found] ` <48A1C2B9.9070107-TSDbQ3PG+2Y@public.gmane.org>
2008-08-20 21:52 ` Oren Laadan
2008-08-20 21:54 ` Oren Laadan
[not found] ` <48AC929C.9030901@cs.columbia.edu>
[not found] ` <48AC929C.9030901-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-20 22:11 ` Dave Hansen
[not found] ` <489CB3CA.6050304@cs.columbia.edu>
[not found] ` <489CB3CA.6050304-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2008-08-08 22:17 ` [RFC][PATCH 1/4] checkpoint-restart: general infrastructure Dave Hansen
2008-08-08 22:23 ` Arnd Bergmann
2008-08-14 8:09 ` [Devel] " Pavel Emelyanov
[not found] ` <1218233855.19082.52.camel@nimitz>
2008-08-08 23:27 ` Oren Laadan
[not found] ` <48A3E81C.6010008@openvz.org>
[not found] ` <48A3E81C.6010008-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-08-14 15:16 ` [Devel] " Dave Hansen
2008-08-11 18:03 ` Jonathan Corbet
[not found] ` <20080811120315.4b3ba2c8@bike.lwn.net>
[not found] ` <20080811120315.4b3ba2c8-vw3g6Xz/EtPk1uMJSBkQmQ@public.gmane.org>
2008-08-11 18:38 ` Dave Hansen
[not found] ` <1218479921.5598.35.camel@nimitz>
2008-08-12 3:44 ` Oren Laadan
2008-08-18 9:26 ` [Devel] " Pavel Emelyanov
[not found] ` <48A94061.8040206-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-08-20 19:10 ` Dave Hansen
2008-08-07 22:40 [RFC][PATCH 0/4] kernel-based checkpoint restart Dave Hansen
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=489CA21A.4060009@cs.columbia.edu \
--to=orenl-eqauephvms7envbuuze7ea@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=tytso-3s7WtUTddSA@public.gmane.org \
/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