Compel TODO

Revision as of 15:56, 10 February 2017 by Xemul (talk | contribs)


Check and fix non-x86 arches

CRIU works with compel just fine, but standalone mode is verified by tests on x86 only.

Fix "root-only" obstacle

CRIU is root-only tool, so we've only checked compel to work when used by root-capable tasks. However, making it work from non-root user is possible, not that hard and makes perfect sense.

Tune the API

Right now we have some stuff that just got into compel/include/uapi/ when we moved the code around and should be hidden. Naming could probably be better too. Configuring the infection context is also FIXME-able.

Rectify parasite loading

For now the prepared parasite ELF should be converted into a C header file, then compiled with infection code, then libcompel can inject it into victim. Reorganizing the code so that it loads the ELF itself is tempting.

  Done Made C-header loading MUCH nicer with pre-generated macros.

Make .so version of the library

For now the libcompel.a is built, so only static linkage is possible. Making it .so should not be a big deal, it mostly depends on the API rectification task (API should be extendable and backward compatible).

  Done make compel/libcompel.so works

Save/Restore SAS in standalone mode

It's currently only handled by CRIU

Sanitize logging

Nowadays we just set FD to put logs into.

Untie task state numbers

The TASK_ALIVE and others are literally and numerically coincide between compel and criu.

  Done COMPEL_TASK_FOOs are in compel and TASK_BARs are in criu and correspond to each other