[CRIU] Signalling processes before CRIU/after unCRIU

Alex/AT alex at alex-at.ru
Wed Oct 10 09:37:42 EDT 2012


It may have some sense to plan/discuss this mechanism a bit then. I assume  
we have two category of processes:

1. Processes that know about CRIU
2. Processes that do not know about CRIU

On the first look, (1) category suspend may be processed as follows:
1. At the start of CRIU work, send "DO YOU KNOW ME? START SUSPEND" signal  
to the process.
2. Getting "ROGER" response (a message passing or a callback mechanism  
with sensible timeout may be implemented), we know that the process is in  
category (1).
3. Then we wait for "COMPLETE" callback/response for a definite time (or  
indefinite, specified on user behalf).
4. If "COMPLETE" is received, process is ready, and we suspend it. After  
unsuspension, we send "WELCOME BACK" signal to the process, and do not  
wait for any response.
5. If "COMPLETE" is not received in given time, we send "SORRY, OUTTA  
HERE" signal to the process and abort, because the process has not  
completed housekeeping properly. It may be nice to have user "force"  
option here to suspend such processes in default way, without waiting for  
completion of housekeeping, if the user knows what he/she is doing.

If we don't get "ROGER" response on the first request, we know the process  
is in the (2) category, and then we may suspend it as is, without any  
further signalling

-- 
Regards,
Alexey Asemov


More information about the CRIU mailing list