Freezing the tree
Before we can start checkpointing processes, we have to make sure that they will not produce new children processes which would escape from dumping procedure. In other words, the process tree must be persistent while we are dumping it. While sounds trivial in theory, it is problematic in real life. The checkpoint is supposed to be transparent to the application we are dumping, thus it must not notice any change in process state transition. Traditionally, processes are stopped with the stop signal. But we have a better choice - a freezer cgroup.