Todo

From CRIU
Revision as of 16:40, 20 February 2015 by Xemul (talk | contribs) (+ more info)
Jump to navigation Jump to search
component task complexity potential/willing assignee comments
kernel/crtools Make proper "check lock present" API in the kernel medium - Currently we detect where a file lock belongs to by locking the file again with the alternative lock type and check how kernel reacts on that. This is not nice as it may tune the lock state on a file. Instead we need the "check lock on fd" call in the kernel.
kernel/crtools Put call to mmap into VDSO easy Cyrill To put the parasite code into target process we modify its code to call the mmap() system call (and the unmodify it back) and put the parasite into new area. Oleg Nesterov suggests not to patch victim, but to always have one on VDSO.
crtools Integration with other projects hard - CRIU is not working great by itself. There's alway some specific about what user wants to dump. Integrating CRIU with other projects will make CRIU work at its best.
crtools Restore tasks into fresh new pid namespace easy - When we dumped processes, it can be hard to restore it back, if they didn't live in a pid namespace, due to PIDs conflict. It would be nice to have the ability to ask CRIU to create the pid namespace for those guys and restore them there. A thing to worry about is this new namespace's init task.
crtools Rollback tree state medium - When we checkpointed process tree with -R option (let them run after checkpoint) we might want to return the tasks into checkpointed state on the same machine. Currently this can only be done by killing the processes and restoring them from scratch. If we could ask CRIU to restore the images into the ready processes that could speed things up, especially if carefully caring about memory changes tracking.
crtools AIO with pending events medium - When we dump AIO ring we check it not to contain events inside and abort the dump otherwise. Need to dump events too and put them back on restore.
crtools Restore arbitrary mountpoints tree hard - Linux kernel can construct tricky knows with mount points. We don't support arbitrary configuration of such things, only those that are in active use by software. Need to fix them up.
crtools Lazy migration using userfaultd medium xemul Lazy migration is when we move all the tasks on another node, but leave theirs memory on the source one. Not to allow tasks read garbage from empty address space we protect all of it as inaccessible. When tasks start reading/writing the mem they got page-fault-ed. With the userfaultfd technology it can be possible to intercept the #PF, pull the page from source node and map it into expected address.
crtools Dump tasks from cgroup easy - Currently criu dumps a subtree from given pid
crtools Speed up logging medium Cyrill Synchronous formatting and writes to log files slow things down (Logging)
crtools Sanitize logging messages hard - Currently log messages are placed w/o any logic. Need to improve that ... somehow.
crtools Support OFD posix locks easy -
crtools Optimize kcmp calls medium - For fs/fdt/vm/etc we can pre-generate ID based on objects that live on them. If pre-ID matches, then call kcmp.
crtools Shmem changes tracking medium -
crtools Page transfer filters medium - Packing or encrypting the data would be nice. Maybe it's purely for P.Haul?
crtools FUSE mount points hard -
crtools 32-bit tasks hard Cyrill
crtools Generate task's core file out of images with CRIT medium Ruslan Kuprieiev
crtools Modify restored resources run-time in CRIT daemon medium - Need (probably) some way to alter what is being restored. Usage example -- change the IP address of sockets from task above.
crtools TCP socket migration with changed IP medium - CRIT it might make sense to migrate a tcp connection on a box with changed IP address _if_ both boxes are NAT-ed to the destination. We will then have to go to NAT box and fix the conntracks, but this might make sense.
crtools Applying images hard xemul@ w/ students Think about ability to take images and apply them to a living task(s). E.g. -- repopulate fdtable according to data from image. Another use-case -- when doing partial migration we'll need to modify one part to switch from pipes to sockets
crtools Partial migration hard - migrate some tasks while proxying IPC to existing others (pipes->sockets, etc.)
crtools Shared objects (mm/fs) support medium - Now we have the kcmp syscall and can do it. The first candidate is mm sharing, as we do know, that MySQL does so sometimes.
crtools Smart paths resolution hard - Need a way to resolve paths to overmounted files. There are two ways: 1. Move mounts, that overlap the desired path temprarily. 2. When creating a new mount pre-open an fd keeping the mountpoint. Later, do accurate path resolve and call openat() on proper mountpoint fd
kernel/crtools TCP repair fixes hard - TCP repair TODO
kernel?/crtools TCP conntrack-ed connections medium - Need to check whether connection tracking is ON, dump the needed conntrack info and put the tracker back.
crtools Bridges in container medium -
crtools VLANs in containers medium -
crtools PPP support medium -
crtools/kernel NFS mount points support hard -
kernel Seamless kernel upgrade hard xemul
crtools Validate .img files easy - CRIT For a given set of image files check, that they are in "restorable" shape
crtools Restore arbitrary process tree hard - Need to restore any process tree, which could be created with help PR_SET_CHILD_SUBREAPER and CLONE_PARENT. Processes can share other resources clone(2). Look at session02
crtools C/R X app hard Ruslan Kuprieiev Dump/restore of graphical applications (see about integration)
crtools/kernel Undo semaphores medium Cyrill Gorcunov Require mods from both sides -- criu and kernel
crtools More detailed RPC fail codes easy - Currently only 3 typical errors are reported(see include/cr-errno.h)
kernel/criu FS-notify queues hard - Fsnotify