Difference between revisions of "Compel TODO"

From CRIU
Jump to navigation Jump to search
(Created page with "Category: Compel")
 
m (Xemul moved page Compel TODO before release to Compel TODO: Released already)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category: Compel]]
 
[[Category: Compel]]
 +
 +
{{Note|[[Compel]] is already released}}
 +
 +
==== 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.
 +
 +
==== Fix the compel_main environment ====
 +
 +
Currently compel parasite code is RPC-only, but there are signs of compel_main (e.g. __export_std_compel_start). Need to clean this out.
 +
 +
==== 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}} <code>make compel/libcompel.so</code> 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}} <code>COMPEL_TASK_FOO</code>s are in compel and <code>TASK_BAR</code>s are in criu and correspond to each other

Latest revision as of 13:47, 18 August 2017


Note.svg Note: Compel is already released

Check and fix non-x86 arches[edit]

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

Fix "root-only" obstacle[edit]

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[edit]

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.

Fix the compel_main environment[edit]

Currently compel parasite code is RPC-only, but there are signs of compel_main (e.g. __export_std_compel_start). Need to clean this out.

Rectify parasite loading[edit]

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.

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

Make .so version of the library[edit]

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).

Yes check.svg Done make compel/libcompel.so works

Save/Restore SAS in standalone mode[edit]

It's currently only handled by CRIU

Sanitize logging[edit]

Nowadays we just set FD to put logs into.

Untie task state numbers[edit]

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

Yes check.svg Done COMPEL_TASK_FOOs are in compel and TASK_BARs are in criu and correspond to each other