Difference between revisions of "Compel TODO"
m (Xemul moved page Compel TODO before release to Compel TODO: Released already) |
|||
(10 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 ==== | ==== Check and fix non-x86 arches ==== | ||
Line 9: | Line 11: | ||
==== Tune the API ==== | ==== 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. | 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 ==== | ==== 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. | 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 ==== | ==== 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). | 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 ==== | ==== Save/Restore SAS in standalone mode ==== | ||
It's currently only handled by CRIU | 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: 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.
- 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).
- 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.
- Done
COMPEL_TASK_FOO
s are in compel andTASK_BAR
s are in criu and correspond to each other