[Devel] [cr][git]linux-cr branch, ckpt-v7-rc1, created. 768ee7c3a407b31f8b7202ce5395163dfe79893e
orenl at cs.columbia.edu
orenl at cs.columbia.edu
Thu Jul 9 05:42:22 PDT 2009
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "linux-cr".
The branch, ckpt-v7-rc1 has been created
at 768ee7c3a407b31f8b7202ce5395163dfe79893e (commit)
- Log -----------------------------------------------------------------
commit 768ee7c3a407b31f8b7202ce5395163dfe79893e
Author: Oren Laadan <orenl at laadan.org>
Date: Thu Jul 9 08:33:17 2009 -0400
mktree: cleanup collect of coordinator/root task
Fix the logic that collects the coordinator and/or root task
and report their exit status.
This mainly fixes bad behavior when 'mktree' itself is a container
init (e.g. started with nsexec), in which case it collects not only
the coordinator but all orphan zombies resulting from the restart.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit d6212fcfdacfa431d4981ede025e1fb0ad86153e
Author: Serge E. Hallyn <serue at us.ibm.com>
Date: Mon Jul 6 17:27:03 2009 -0500
mktree: s390: don't hard-code clone-with-pids syscall
Use __NR_clone_with_pids (from asm/unistd.h) as an immediate
value instead.
Signed-off-by: Serge Hallyn <serue at us.ibm.com>
commit 5e55d1ed5e1855c7d4109326c0c9ab45a59f7a10
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jul 1 22:55:52 2009 -0400
mktree.c: options --pids and --pidns imply each other by default
To restart into current pidns with pids restored, use:
$ mktree --pids --no-pidns ....
Also fix a glitch by negating the test before the call to prctl()
such that it works as advertised in the preceeding comment.
commit aa3d206329307fa928ea059d64c70c85c2b7e5b5
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jul 1 06:00:27 2009 -0400
test/sigpending.c: add test case for pending signals
commit 7933c3e71de3abd48adb848de5d70e369ccdcacc
Author: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
Date: Sat Jun 27 12:27:04 2009 -0700
Use __WALL option in waitpid()
The coordinator creates the children with clone(), so pass the __WALL
option to waitpid(). Otherwise the waitpid() will fail, and bring the
container down even as the application is restarting successfully :-)
For instance, if the original app is executed as:
$ ns_exec -cpuimP pid.ptree1 -- ./ptree1 -n 2 -d 1 -w sleep
Then ns_exec creates the app in new container, with p->exit_signal 0
for the container-init. Restart correctly restores the exit_signal to
0. Because of that, we need the coordinator to use __WALL.
Signed-off-by: Sukadev Bhattiprolu <sukadev at us.ibm.com>
[orenl at cs.columbia.edu: use __WALL in all waitpid() of coordinator]
commit 50dfc2f4ab2856bfa2b3580df2eb65bad71f2561
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sun Jun 28 00:52:51 2009 -0400
mktree.c: rework the parent-child cleanup/collect logic
Misc fixes to the coodinator <=> root-task logic and, in the pidns
(where root-task isn't init) to the mktree <=> coordinator logic:
* The ret value of getpid() is cached by libc, but we bypass libc with
a direct call to clone_with_pids(). Instead use syscall(__NR_pid) to
always get a fresh ret value.
* Register SIGINT and SIGCHLD handler after forking root-task (and
coordinator), instead of before. Parent then probes that the newborn
exists before proceeding.
* Newborn children use prctl(PR_SET_PDEATHSIG...) after they verify
that the parent is indeed there.
* More complete treatment of waitpid() ret value in sigchld_handler().
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 8b62a1157458e058c588e61707f94fa0d0893dd9
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Fri Jun 26 02:11:18 2009 -0400
ckptinfo.c: add option to show position (per object) in stream
commit 9751413013c1d35dfeb35e3f9241dcc07099c1a4
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Fri Jun 26 01:43:11 2009 -0400
mktree.c: make feeder task a thread instead of child
When mktree is also the coordinator task and also a container init,
e.g. when started with 'ns' and with '--no-pidns', the feeder process
would be re-parented to it and produce a SIGCHLD when it terminated.
In turn, this would interrupt coordinator's wait-for-completion of
the restart.
Converting the feeder task to a thread (but without using SIGCHLD in
the flags) eliminates this problem.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit c5f5c204676233fcc55f771e9e251ed0054e02e4
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Thu Jun 25 03:51:13 2009 -0400
ckptinfo.c: auto-generate conversion of CKPT_..._.... to string
Introduce ckptinfo.py that expects checkpoint_hdr.h files (both
generic and arch-dependent) and produces C code to convert the
hdr/obj/file/vma constants to a descriptive string.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit a19d5941bcd9b9dc2e2813d824372d642714db6d
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jun 24 12:32:19 2009 -0400
ckptinfo.c: more information on objref objects
commit a011424ca7c7e702cabaed4e09b0e153af9d6586
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jun 24 12:31:35 2009 -0400
mktree.c: adjust changes in checkpoint header format
commit 24f69887a07b355b93ec51b7df80e719c783f90b
Author: Serge E. Hallyn <serue at us.ibm.com>
Date: Mon Jun 15 14:08:21 2009 -0500
mktree: use clone_with_pid on s390
Signed-off-by: Serge Hallyn <serue at us.ibm.com>
[orenl at cs.columbia.edu: don't define __NR_clone_with_pids]
commit 597ac659e839ddaa4f3d978ac7bce862b4d74ace
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jun 17 05:08:02 2009 -0400
mktree.c: improve cleanup on failure without '--pids'
commit 77481bbd1620b4b79aff8dfe0feeb3f892e81e93
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jun 17 00:58:22 2009 -0400
mktree.c: ensure that all tasks are ready for coordinator
The (recent) restart logic requires that all restarting tasks be
already alive when the coordinator starts to read the checkpoint image
file (i.e. prior to calling prepare_descendants() in the kernel).
This has already been the case for the "no --pids" case, because the
feeder would first wait to hear from all restarting tasks about their
new pids, and only then push actual data to the kernel.
Now, for the '--pids' case, piggy-back on this mechanism to create the
same end effect, so when coordinator starts to process data from the
file descriptor, the hierarchy is properly prepared.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 8b63138cfe4a8918a2e1cccb83e9bde1b0eb1400
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Jun 16 07:12:08 2009 -0400
mktree.c: adjust to restart logic, remove CLONE_RESTART flag
The kernel restart logic has changed: the coordinator now sets the
t->restart_tsk pointer on the descendants, instead of using a new
clone flag to pass it through inheritance.
By ridding the need for clone_with_pids() (except for --pids case)
we now again have a convenient fallback - clone - when the former
isn't available.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 8a242a6cb5a96280b57e0cc420556918553c2f56
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sat Jun 13 18:59:36 2009 -0400
test/zombie.c: add test case for zombie processes
commit 834557f604173e49940755b9e7bc992033551305
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jun 10 14:03:58 2009 -0400
mktree.c: give compile error if clone_with_pids() not found
This is necessary because the restart logic changes and now requires
that syscall.
commit 950f5711600d69b18271909dc9ed16ff799400c0
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Jun 9 21:25:22 2009 -0400
mktree.c: add --debug, --verbose, --pidns-intr=SIG switches
--debug: controls debug output
--verbose: controls verbosity (status report)
--pidns-intr=SIG: signal to send to root task (when --pidns) if we
(mktree) get a SIGINT, e.g. via ctrl-c
commit 12f83a6f46384516e98bed3019b56812bba8533d
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Jun 9 18:47:07 2009 -0400
mktree.c: now works with --pidns (new pid namespace)
In particular, for --pidns mktree checks the pid of the root_task.
If the pid is 1, proceed as before for a new namespace, and fork
the root_task with CLONE_NEWPID.
If the pid isn't 1, then fork a coordinator task into a new pidns
so that it becomes the init task there, and don't use CLONE_NEWPID
for the root task.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit b5d5c4694f95b5bb041246c0fbb97033662c5fb9
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Jun 8 19:37:09 2009 -0400
Makefile: add target 'install'
commit 7c5a747b60dde3e75d1f9f8e09de1f1e0e88b525
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Jun 8 19:31:01 2009 -0400
mktree.c: allow compile (and run) whithout CLONE_NEWPID defined
commit 8fc8b640f8674d6de553cded539d24e08fac6f34
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Jun 8 03:51:51 2009 -0400
mktree.c: add support for pid-ns and clone_with_pids()
Add three new options to 'mktree':
--pidns: do the restart in a new pid namespace
--no-pidns: do the restart in current pid namespace (default)
--pids: in case of --no-pidns, try to restore pids nevertheless.
If @pidns, coordinator task uses CLONE_NEWPID when forking the
root task. Current only one pidns level is supported.
If @pids (or @pidns), tasks are created with clone_with_pids()
and original pids are restored.
For now, 'struct target_pid_set' is defined explicitly in the
source (should be defined in kernel header, though).
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit f9ad6e5f0f591ef6e9d751b11e989abc78f08e42
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jun 3 20:56:29 2009 -0400
ckpt.c: include <linux/checkpoint.h> (instead of checkpoint_types.h)
commit 955ac3d5f77c339c58e19bb5f86da80696277df2
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jun 3 12:26:15 2009 -0400
rstr: use flag RESTART_TASKSELF for restart(2)
commit b037c3a34dd0f5706b52720368f2ca7890507745
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Jun 3 12:25:44 2009 -0400
ckptinfo: remove stale use of CKPT_HDR_THREAD_TLS
commit a2588254c54c11781de3f0c933af11ad28c6f861
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Jun 2 18:41:20 2009 -0400
mktree: use a coordinator task during restart
Kernel code was updated to expect a coordinator task when multiple
tasks are restarted (commit b0ddfc4784a543fdb98662d975963468e13ad3fa)
This patch adapts mktree.c to that scheme. In particular, the main
task is the coordinator. It now forks the feeder task and then also
forks the root restarting task.
One benfit is that error reporting makes sense now: the user will
see a suitable error message instead of the segfault of the init
task.
Also, it's now easier to add the "CLONE_NEWPID" when creating the
init task to put the restarting processes in a new namespace.
Added switch to 'mktree': --wait (-w) to wait for restart (root)
task to exit, --show-status to show its exit status, --copy-status
to imitate its exit status, and --no-wait (-W) to not wait for it.
Catch SIGINT and pass it to the restart task if in --wait mode.
Catch SIGCHLD (until restart succeeds) to detect errors.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 84d41dc494936c2df054fd652b3ea5de777d75a4
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Jun 2 17:17:13 2009 -0400
self.c: include linux/checkpoint.h instead of linux/checkpoint_types.h
commit 3af016061c79c54876714a718238bccd2e438528
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sun May 31 14:18:45 2009 -0400
self.c: use flag CHECKPOINT_SUBTREE in call to checkpoint(2)
commit a43c6bef1dfb893284d4dc458af9bf93f8ead21f
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed May 27 13:40:19 2009 -0400
test/ipcmsq.c: trivial fix
commit a016172a0b8c4913df553fba050b31d81e78e1cd
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed May 27 13:37:54 2009 -0400
ckptinfo: update header names to match recent kernel version
CKPT_HDR_FD_TABLE --> CKPT_HDR_FILE_TABLE
CKPT_HDR_FD_ENT --> CKPT_HDR_FILE_DESC
CKPT_HDR_FNAME --> CKPT_HDR_FILE_NAME
commit a6de98cc847195e9cd10100747ba90689d11cadb
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed May 20 10:08:19 2009 -0400
ckptinfo: convert hdr type to a meaningful string
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 9caa4d725e13b7c02cd2ed773a82d874e23293ef
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed May 20 01:14:40 2009 -0400
ckpt: suppress output unless verbose mode
And if in verbose mode, output to stderr so that output
does not mix with checkpoint image (written to stdout).
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 59b13cea2deacb51f8ef1089206d23eb7622a22c
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue May 19 19:34:19 2009 -0400
mktree: adjust ckpt_{read/write}_tree() for latest kernel code
Recent commit (85e92fe0ebae7fcee647da6aeb7d1c637906aa58) in kerenl c/r
modified the format such that all checkpoint objects be preceeded with
a 'struct ckpt_hdr'. Adjust ckpt_read_tree() and ckpt_write_tree() to
play by the new rules.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 44fbe41d49e0b29758f18f01259348176d5c6bc1
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon May 18 10:15:02 2009 -0400
test/pipes.c: also test a pipe with empty buffer
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit caeaa30ecd929fa73fc31f39ffb6c6fede12f9ce
Author: Serge E. Hallyn <serue at us.ibm.com>
Date: Wed May 13 21:29:32 2009 -0500
mktree: long is bigger on 64-bit (v2)
mktree's hash function assumes that long is 32 bits. Fix.
This version takes Nathan's suggestion of using sizeof(key)
instead of sizeof(long).
Signed-off-by: Serge Hallyn <serue at us.ibm.com>
commit ff8bf06be34f826bbb0e21079e581b176f459813
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Apr 28 06:40:52 2009 -0400
mktree.c: set errno to report EINVAL upon a header type mismatch
commit ed39a49c27d441782113b51ed935a383e00fdd10
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Apr 28 05:35:38 2009 -0400
ckpt.c: take a new switch -c/--container for whole-container checkpoint
By default (without this switch) the flags for checkpoint(2) will have
CHECKPOINT_SUBTREE, meaning that a partial-container checkpoint will be
taken. If the switch is set, then the flag isn't set.
commit af0592106c75ac06404e4b950cb0cc4649cec8b1
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Apr 27 01:19:03 2009 -0400
Add sysvipc sempahore test
commit 8c30846a573f8a36be1ff01ab703070e7f508504
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Apr 27 01:18:32 2009 -0400
mktree.c: adapt to recent changes in image format
commit d40488e63db525489d51200aa18d0c264381b16e
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Apr 14 02:44:06 2009 -0400
mktree: set 'session->phantom' when adding a placeholder task
Placeholder tasks are used to generate session ids of tasks that
have died prior to the checkpoint. There is at most one placeholder
per session, pointed to by ->phantom.
Also, Sukadev Bhattiprolu observed that a task with ppid==1 and a
session id like the container-init can be viewed either as an orphan
task or as a child of containter-init. To avoid an unnecessary
placeholder in this case, switch the order of the orphan and the
same-sid-as-parent tests.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 01fe7523a743f80fb4f9c34eaabf96a69c33b40c
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Apr 14 02:39:59 2009 -0400
Move test programs into own directory
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 1eda10788d01e81cdd90c9939d33a417f1d2b743
Author: Dan Smith <danms at us.ibm.com>
Date: Thu Apr 9 10:46:10 2009 -0700
Add a multi-process IPC test
This test forks off several children in various states to ensure that
the IPC namespace information is properly restored after restart.
Automatically validates the results and returns a pass/fail status
indication for automated runs.
Signed-off-by: Dan Smith <danms at us.ibm.com>
Acked-by: Oren Laadan <orenl at cs.columbia.edu>
commit c5e62e41ad078fd8379a1f20d54a2e5c0621bdaf
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Apr 7 08:20:06 2009 -0400
mktree: adapt to the change 'tasks_nr' -> 'nr_tasks' in kernel
commit 7b06b70fd66754a4e1c1e3fd3bb336986ebee67c
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Apr 7 08:17:09 2009 -0400
add test for ipc message queues: tst_ipcmsq
commit 6cd1f63423a5a824f36a377ef74175e5db798b53
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sun Apr 5 18:47:14 2009 -0400
mktree: remap sid/pgid that point out of subtrees to subtree init
When restarting a subtree (that was checkpointed out-of-container), there
may be processes that carry a sid/pgid that don't belong to the subtree
(e.g. from an acenstore further above). In this case, remaps these to the
sid/pgid of the subtree init.
commit d2251c8a2099499485a9e280488c29103edc5c62
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Apr 1 10:18:04 2009 -0400
Inroduce DumpForest algorithm to build creator-child-relationship tree
Support restart of multiple processes from userspace, in the presence
of threads, dead (zombie) tasks and clones with CLONE_PARENT, and while
preserving the session-id.
The algorithm was described in the paper "Transparent Checkpoint/Restart
of Multiple Processes on Commodity Operating Systems" in USENIX 2007
(http://www.usenix.org/events/usenix07/tech/full_papers/laadan/laadan_html/paper.html).
We distinguish between a process parent and its creator: the differ for
threads and for clone with CLONE_PARENT. For each task the algorithm
assigns a creator, and for each creator the algorihtm assigns the list
of children to create. In the next patch this will be used as a set of
instructions to create the processes
The output is a tree that describes these relationships. The tasks are
stores in a large array and the tree structure is imposed on this array.
The size array is three times the number of tasks, to accommodate for
new place-holder tasks that the algorithm may add on demand.
To provide fast lookup of a task in the array/tree given its pid, there
is also a simple hash table implementation that translates a pid to the
pointer to the task.
If restarting a non-container (that is, a subtree of processes from some
namespace), then the "root" process is not init. The code is careful to
compare with the subtree root instead. On the other hand, we can't have
zombie processes.
commit 91e2648efcc60dee8ede2b60f35e27c8dd76473f
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Wed Mar 25 23:08:03 2009 -0400
add test for ipc shmem: tst_ipcshm
commit 070e833ffc150fde1f20c10a0307265297a4bc69
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sun Mar 22 11:16:24 2009 -0400
adjust code to read/save length of individual uts-> fields in head
commit 6685ed37ba49181d9de81a47a241d23eb372c6f2
Author: Oren Laadan <orenl at laadan.org>
Date: Fri Mar 20 10:47:12 2009 -0400
Introduce tests: tst_pipes2 and tst_shmem
commit de626971e73cce030186d16fed375add054a9f0f
Author: Oren Laadan <orenl at laadan.org>
Date: Fri Mar 20 10:29:09 2009 -0400
Rename test programs to have meaningful names
commit 64eeb18a9ab504029bc492cfd03429275d23fadd
Author: Oren Laadan <orenl at laadan.org>
Date: Fri Mar 20 10:27:15 2009 -0400
Fix bug in cr_adjust_id() if tasks switch their pids on restart
Make a copy of the original array to fix a nifty bug where two
tasks in original image with pids, e.g., 3 and 5, restart with
pids swapped (5 and 3), for instance -
original pid array: [][][3][][5][]...
first, swap B with A: [][][3][][3][]...
then, swap A with B: [][][5][][5][]...
but correct should be: [][][5][][3][]...
commit b48cde69b3a3cd8910608cd1d9cd6b6c52dfb5c6
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Thu Mar 19 14:42:13 2009 -0400
Adjust mktree.c to changes in cr_hdr_head format
The ->release, ->machine, ->version were removed, and instead written
as buffers following the structures.
commit 5e105d3d2b41ece4f2d92faf25e5c5c338447027
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Thu Mar 19 14:40:12 2009 -0400
Make kernel source path configurable
Add an optional argument to the user-cs Makefile called KERNELPATH that
allows one to specify the path for kernel sources to use for the build.
Signed-off-by: Mike Waychison <mikew at google.com>
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 934a779e15474aa345c606048394823f00cf9ebc
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Tue Jan 27 16:20:16 2009 -0500
Introduce test3 (large memory allocations) and test4 (pipes)
commit 8c1235aec3d3265b8ca20827867abe6873752b42
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Nov 10 05:09:09 2008 -0500
Makefile to be more user friendly
commit fefa1cddb6210d751c9c94faf4afd25ebef60245
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Nov 10 05:05:50 2008 -0500
Add some documentation
commit 8fac424d135970108452007f7a8ddbbecef6973c
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Nov 10 03:57:36 2008 -0500
mktree: read (and write) cr_hdr_head_arch
commit d07ee202cf2fd7ccb78d179b2f99ff6efc8eb1db
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sun Nov 9 17:53:26 2008 -0500
Always use feeder (and checkpoint image has one header, one tree)
Kernel checkpoint for multiple process no longer saves two copies of
the header and the tree; Therefore, restarting processes in user space
requires using a feeder anyway.
commit 689981cf7d65239727ec4379d9e0976546c3bbb5
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sat Nov 8 19:40:07 2008 -0500
no-pids: use child as feeder to avoid orphaning the group
In 'no-pids' mode, use the child process for the feeder, so that
the original task (mktree) remains the process group leader and
isn't orphaned.
The feeder task is made reparented to init(1) so the original
task need not collect it (if restart succeeds, of course it won't !)
Add documentation and do some code cleanups.
commit a5c75e48a56b90dd29fb8fa0976aba98e1594b6d
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Nov 3 01:37:51 2008 -0500
Add switch to choose operation with or without original pids
commit 0b451e0e8b2dbcb93432ea433e46cc4a2f90a3ab
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Nov 3 00:04:05 2008 -0500
Transfrom pids_arr to actual pids before calling sys_restart
Allow 'mktree' to restart a tree of processes without the need to
clone-with-pid by modifying the pids_arr structure prior to the
actual restart.
We use a "helper task" that forks the init (that forks the others),
and expects to receive via a pipe the translations old ==> new pids.
The task also reads the checkpoint in and write the (modified) data
out to the stdin of the restarting process.
Of course, this assumes that the application can tolerate the change
of pids after a restart.
commit 5816520817665bf82a6c6a14d468ce46ce08126b
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sun Nov 2 21:40:25 2008 -0500
Add ckpt,rstr,self,test1,test2
commit 3d17677bd6139f27d8c4f5be573e76c899fee9f5
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sun Nov 2 18:24:40 2008 -0500
Allow 'mktree' to execute even not as container init
By not requiring that a task's pid be identical to the expected
pid from the pids_arr information. This allows to run (and test)
the restart even not inside a container. In particular, one can
also drop the requirement of restoring pids.. and voila :)
commit 6b1eee10075c23cf24e06aa6eb91783c7392abcf
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Fri Oct 31 20:21:35 2008 -0400
Initial commit: mktree.c and its Makefile
-----------------------------------------------------------------------
hooks/post-receive
--
linux-cr
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list