[CRIU] CRIU 2.0

Pavel Emelyanov xemul at parallels.com
Tue Dec 15 03:37:48 PST 2015


On 12/15/2015 03:11 AM, Tycho Andersen wrote:
> Hi Pavel,
> 
> On Mon, Dec 14, 2015 at 01:09:06PM +0300, Pavel Emelyanov wrote:
>> Hi,
>>
>> Right now in criu we have at least two parts that are useful by themselves
>> and sometimes people ask for those as separate libraries. The parts are -- 
>> the implementation of infecting tasks with random blob (parasite) and TCP
>> checkpoint-restore code.
>>
>> So by the next release I propose to re-suffle the CRIU source tree and make
>> effectively three distinguished components under the same name -- the criu 
>> tool itself, the infecting library and tool and the TCP CR library. For the
>> infecting library we've once tried to pull this into a separate project 
>> called 'compel' (https://github.com/xemul/compel), with core library, helper 
>> libs and CLI tool, but with no luck -- it was so basic to CRIU that patching
>> them independently was too complex. Hopefully maintaining compel in the criu
>> tree at least for the first time would make this finally happen.
>>
>> And, while tossing the code around, it would also make sense to make some
>> order in the source tree at least putting CRIT into its own subdir, putting
>> zdtm tests into one place and moving the legacy tests aside.
> 
> And potentially removing some levels necessary to cd? I've never
> understood what zdtm/live/static is :)

Well, yes, nice catch. There was an attempt to separate static tests, that
do not move while being checkpoint-restored from those that work constantly.
And the 3rd type that blocks the C/R.

>> With all these changes I think it would make sense to do tag criu 2.0 :)
>>
>>
>> As the initial suggestion on the code structure and names I have:
>>
>> crtools/        for the existing criu code
>>    pycriu/      for python bindings
>>    lib/         for C library
>>    go/          for go binding (if we ever have one)
> 
> For this, if I were doing it myself, I'd have it as
> 
> criu/
>   cr-restore.c
>   protobuf/
>   ...
> 
> lib/
>   pycriu/
>   go/
>   c/
> 
> Since the libraries are not dependent on anything besides
> protobuf/rpc.proto (which we could keep in / and symlink or something)

OK, makes sense.

> I know before we mentioned changing the release schedule slightly;
> when were you thinking of tagging 2.0?

There gonna be another e-mail about it from me some time soon :)

>> libsockcr/      for TCP checkpoint-restore
>>
>> The output is libsockcr.so (and libsockcr.a)
> 
> A cute name (for Americans, at least) for this would be libsoccr.so,
> as a play on "soccer". That may be a bad idea though :)

Name audit from speakers of different languages is always good... There
should be some service doing this so that stuff like pidora or runc get
noticed in advance :)

-- Pavel


More information about the CRIU mailing list