<div dir="ltr">I don't know the internals, but I did have this implemented as a python module using BLCR. In that case, the guts of the operation is:<div><br><div> int err = cr_request_checkpoint (&cr_args, &cr_handle);<div>
<br></div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 3, 2013 at 7:45 AM, Pavel Emelyanov <span dir="ltr"><<a href="mailto:xemul@parallels.com" target="_blank">xemul@parallels.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 07/03/2013 03:22 PM, Neal Becker wrote:<br>
> Some time back I had asked about this:<br>
><br>
> <a href="http://lists.openvz.org/pipermail/criu/2013-April/008339.html" target="_blank">http://lists.openvz.org/pipermail/criu/2013-April/008339.html</a><br>
><br>
> and then promptly forgot the subject. Now that f19 is released and has criu, I'm wondering what is the status?<br>
<br>
</div>Unfortunately, nothing has changed since then. But as I told, we're ready to discuss ideas<br>
and review patches if any.<br>
<div class="im"><br>
> My usage is for programs (with a python main) to be able to periodically checkpoint themselves. Of course, they<br>
> could simply do that now by 'shelling out'. But where's the fun in that?<br>
<br>
</div>Well, the first thing that comes to my mind about "app to checkpoint itself" is -- how<br>
would CRIU .so tell process' own resources from criu's ones? E.g. memory mapping with<br>
the .so itself can be checked, but how about malloc()-ed objects or opened files?<br>
<br>
If you want to do periodic self-checkpoint, maybe the following model would work:<br>
<br>
* launch criu daemon/service<br>
* when an app wants to checkpoint itself it "kicks" this daemon somehow, in this case it<br>
_can_ be a .so which only does necessary communication to the criu service<br>
* daemon calls dump on app's pid<br>
<br>
What do you think?<br>
<br>
Thanks,<br>
Pavel<br>
</blockquote></div><br></div>