From: Nadia Derbey <Nadia.Derbey-6ktuUTfB/bM@public.gmane.org>
To: Cedric Le Goater <clg-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
Cc: Containers <containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>,
Dave Hansen
<dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Subject: Re: Userspace checkpoint/restart hack: cryo
Date: Tue, 29 Apr 2008 16:50:14 +0200 [thread overview]
Message-ID: <481735A6.8070800@bull.net> (raw)
In-Reply-To: <48159D1D.3050302-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 1735 bytes --]
Cedric Le Goater wrote:
> Dave Hansen wrote:
>
>>A guy named Marc Vertes wrote this as a little demonstration of
>>checkpoint/restart. I've been using it to experiment with
>>checkpoint/restart. I thought it might be of some use as we move
>>subsystems to being helped by the kernel to checkpoint and restart.
>>
>>It's ptrace-based, and stuck on i386 for now. It can probably be ported
>>elsewhere without too much trouble. It doesn't support *anything
>>fancy like multuiple tasks :). It has the advantage of being very
>>feature-bare, and I think it is pretty easy to hack on. Whatever c/r
>>support we add to the kernel could easily be added on and tested.
>>
>>http://userweb.kernel.org/~daveh/cryo/cryo-001.tar.gz
>>
>>Usage:
>> cr -p `pidof task` > checkpoint.cryo
>> cr -r < checkpoint.cryo
>>
>>If anyone else has something simpler or easier to hack on, I'm all ears.
>
>
> Indeed. It looks simple enough.
>
> do you have some kernel requirement ? I run Fedora 8
>
> Here's my first try on a program calculating decimal of PI :
>
> $ ./cr -p `pidof pi1` > pi1.cryo
> attaching to pid: 11082
> [11087 cr.c:243 getfdinfo()] n : 0
> WARNING (sci.c:242) unexpected signal for 11082: 11
> [11087 sci.c:228 ptrace_waitsyscall()] WTERMSIG(status) : 11
> ERROR (sci.c:383) ptrace_getregs(11082, 0xbfe4a3d0) errno=3: No such process
> ./cr[0x8051f10]
> ./cr[0x8049ce9]
> ./cr[0x804b7d2]
> ./cr[0x804f75b]
> ***STOP***
>
> other terminal :
>
> $ pi1 20000
> pi1 - 20000 digits, 78.1 kbytes
> Segmentation fault (core dumped)
>
> Thanks,
>
> C.
>
Looks like it has worked for me (msg1 creates 1000 msg queues, sleeps
for a while and then removes the msg queues).
Output attached.
Regards,
Nadia
[-- Attachment #2: cryo.output --]
[-- Type: text/plain, Size: 6086 bytes --]
[root@akt cryo-001]# ./cr -p `pidof msg1` > msg1.cryo
attaching to pid: 4689
[4695 cr.c:243 getfdinfo()] n : 0
[4695 cr.c:243 getfdinfo()] n : 1
[4695 cr.c:243 getfdinfo()] n : 2
DEBUG (utils.c::25) write_item() writing item named: 'pid' datasize: 4 to positi
on: 0
DEBUG (utils.c::25) write_item() writing item named: 'ppid' datasize: 4 to posit
ion: 10
DEBUG (utils.c::25) write_item() writing item named: 'exitsig' datasize: 4 to po
sition: 21
DEBUG (utils.c::25) write_item() writing item named: 'fpregs' datasize: 108 to p
osition: 35
DEBUG (utils.c::25) write_item() writing item named: 'regs' datasize: 68 to posi
tion: 154
DEBUG (utils.c::25) write_item() writing item named: 'exe' datasize: 32 to posit
ion: 230
DEBUG (utils.c::25) write_item() writing item named: 'argv' datasize: 7 to posit
ion: 269
DEBUG (utils.c::25) write_item() writing item named: 'env' datasize: 1137 to pos
ition: 283
DEBUG (utils.c::25) write_item() writing item named: 'cwd' datasize: 27 to posit
ion: 1429
DEBUG (utils.c::25) write_item() writing item named: 'sigact' datasize: 9240 to
position: 1463
DEBUG (utils.c::25) write_item() writing item named: 'sigmask' datasize: 128 to
position: 10715
DEBUG (utils.c::25) write_item() writing item named: 'sigpend' datasize: 128 to
position: 10855
DEBUG (utils.c::25) write_item() writing item named: 'FD' datasize: 0 to positio
n: 10995
[4695 cr.c:512 checkpoint()] pi->nf : 3
DEBUG (utils.c::25) write_item() writing item named: 'fdinfo' datasize: 148 to p
osition: 11000
DEBUG (utils.c::25) write_item() writing item named: 'fdinfo' datasize: 148 to p
osition: 11159
DEBUG (utils.c::25) write_item() writing item named: 'fdinfo' datasize: 148 to p
osition: 11318
DEBUG (utils.c::25) write_item() writing item named: 'END FD' datasize: 0 to pos
ition: 11477
DEBUG (utils.c::25) write_item() writing item named: 'SOCK' datasize: 0 to posit
ion: 11486
DEBUG (utils.c::25) write_item() writing item named: 'END SOCK' datasize: 0 to p
osition: 11493
DEBUG (utils.c::25) write_item() writing item named: 'MEM' datasize: 0 to positi
on: 11504
getmaps() '' is anonymous (old test)
getmaps() '' is anonymous (new test)
getmaps() '' is anonymous (old test)
getmaps() '' is anonymous (new test)
getmaps() '' is anonymous (old test)
getmaps() '' is anonymous (new test)
getmaps() '[stack]' is anonymous (new test)
getmaps() '[vdso]' is anonymous (new test)
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to p
osition: 11510
DEBUG (cr.c::528) mem i=0 0x850000 -> 0x869000 /lib/ld-2.5.so
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 0 to pos
ition: 11669
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to p
osition: 11678
DEBUG (cr.c::528) mem i=1 0x869000 -> 0x86a000 /lib/ld-2.5.so
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 0 to pos
ition: 11837
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to p
osition: 11846
DEBUG (cr.c::528) mem i=2 0x86a000 -> 0x86b000 /lib/ld-2.5.so
DEBUG (cr.c::530) mem i=2 saved size = 4 KB
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 4096 to
position: 12005
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to p
osition: 16113
DEBUG (cr.c::528) mem i=3 0x86d000 -> 0x9a4000 /lib/libc-2.5.so
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 0 to pos
ition: 16272
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to p
osition: 16281
DEBUG (cr.c::528) mem i=4 0x9a4000 -> 0x9a6000 /lib/libc-2.5.so
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 0 to pos
ition: 16440
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to p
osition: 16449
DEBUG (cr.c::528) mem i=5 0x9a6000 -> 0x9a7000 /lib/libc-2.5.so
DEBUG (cr.c::530) mem i=5 saved size = 4 KB
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 4096 to position: 16608
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to position: 20716
DEBUG (cr.c::528) mem i=6 0x9a7000 -> 0x9aa000
DEBUG (cr.c::530) mem i=6 saved size = 12 KB
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 12288 to position: 20875
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to position: 33176
DEBUG (cr.c::528) mem i=7 0x8048000 -> 0x8049000 /home/lkernel/src_ref/tests/msg1
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 0 to position: 33335
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to position: 33344
DEBUG (cr.c::528) mem i=8 0x8049000 -> 0x804a000 /home/lkernel/src_ref/tests/msg1
DEBUG (cr.c::530) mem i=8 saved size = 4 KB
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 4096 to position: 33503
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to position: 37611
DEBUG (cr.c::528) mem i=9 0xb7f98000 -> 0xb7f99000
DEBUG (cr.c::530) mem i=9 saved size = 4 KB
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 4096 to position: 37770
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to position: 41878
DEBUG (cr.c::528) mem i=10 0xb7fa6000 -> 0xb7fa8000
DEBUG (cr.c::530) mem i=10 saved size = 8 KB
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 8192 to position: 42037
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to position: 50241
DEBUG (cr.c::528) mem i=11 0xbfc93000 -> 0xbfca8000 [stack]
DEBUG (cr.c::530) mem i=11 saved size = 84 KB
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 86016 to position: 50400
DEBUG (utils.c::25) write_item() writing item named: 'memseg' datasize: 148 to position: 136429
DEBUG (cr.c::528) mem i=12 0xffffe000 -> 0xfffff000 [vdso]
DEBUG (utils.c::25) write_item() writing item named: 'membuf' datasize: 0 to position: 136588
DEBUG (utils.c::25) write_item() writing item named: 'END MEM' datasize: 0 to position: 136597
[-- Attachment #3: Type: text/plain, Size: 206 bytes --]
_______________________________________________
Containers mailing list
Containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
https://lists.linux-foundation.org/mailman/listinfo/containers
next prev parent reply other threads:[~2008-04-29 14:50 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-25 17:24 Userspace checkpoint/restart hack: cryo Dave Hansen
[not found] ` <1209144259.12718.46.camel-FpcvD5N4B9G9xGwK5P7XA+TW4wlIGRCZ@public.gmane.org>
2008-04-28 9:47 ` Cedric Le Goater
[not found] ` <48159D1D.3050302-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2008-04-29 14:50 ` Nadia Derbey [this message]
[not found] ` <481735A6.8070800-6ktuUTfB/bM@public.gmane.org>
2008-04-29 15:21 ` Cedric Le Goater
[not found] ` <48173CE1.7050503-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2008-05-05 8:50 ` Nadia Derbey
[not found] ` <481ECA42.5060603-6ktuUTfB/bM@public.gmane.org>
2008-06-09 13:04 ` Serge E. Hallyn
[not found] ` <20080609130429.GA16297-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-06-09 15:02 ` Nadia Derbey
[not found] ` <484D4612.9000901-6ktuUTfB/bM@public.gmane.org>
2008-06-09 15:23 ` Serge E. Hallyn
[not found] ` <484E1BD3.40401@ozlabs.au.ibm.com>
[not found] ` <484E1BD3.40401-QcUrd9fbWu1x7SfHBjqd8AC/G2K4zDHf@public.gmane.org>
2008-06-10 18:17 ` Serge E. Hallyn
[not found] ` <484F0DC7.5080209@ozlabs.au.ibm.com>
[not found] ` <484F0DC7.5080209-QcUrd9fbWu1x7SfHBjqd8AC/G2K4zDHf@public.gmane.org>
2008-06-10 23:51 ` [GIT PATCH] actually check va randomization Dave Hansen
2008-06-11 3:07 ` Serge E. Hallyn
2008-06-11 18:35 ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080611183551.GA32012-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-06-11 19:52 ` Serge E. Hallyn
[not found] ` <20080610181756.GB13817-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-06-17 5:48 ` Userspace checkpoint/restart hack: cryo kathys
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=481735A6.8070800@bull.net \
--to=nadia.derbey-6ktuutfb/bm@public.gmane.org \
--cc=clg-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org \
--cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
--cc=dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.