Jump to: navigation, search

Google Summer of Code Ideas

56 bytes added, 30 January
Optimize the pre-dump algorithm
Current [[CLI/cmd/pre-dump|pre-dump]] mode is used to write task memory contents into image
files w/o stopping the task for too long. It does this by stopping the task, infecting it and
draining all the memory into a set of pipes. Then the task is cured and , resumed and the pipes'contents is written into images (maybe a [[page server]]). This Unfortunately, this approach creates a big stresson the memory subsystem, as keeping all the memory in pipes creates a lot of unreclaimable memory(pages in pipes are not swappable), as well as the number of pipes themselves can be buge (huge, asone pipe doesn't store more than a fixed certain amount of data(see pipe(7) man page).
We can try A solution for this problem is to use a sys_read_process_vm() syscall to , which will mitigate all of the above. To do this weneed to allocate a temporary buffer in criu, then walk the target process vm by copying thememory piece-by-piece into it, then flush the data into image (or page server), then and repeat.
Ideally there should be sys_splice_process_vm() syscall in the kernel, that does the same as

Navigation menu