-
Andrey Vagin authored
Some process can share one struct file-s, we may find them by "object IDs". A file descriptor is opened in one process and send to other via unix socket. The procedure of restoring files contains four stages. * Collect data about all file's descriptors On this stage we find process which will restore a file descriptor and create a list of processes, who should get this descriptor. * Create datagrams unix sockets If a file descriptor should be received, a unix socket is created instead of it. * Open file descriptors A process with the least pid opens a file and sends this file descriptors to all one who wait it. * Receive file descriptors. When we were thinking up this algoritm, we wanted to minimize a number of context switches. A number of context switches is proportional of a number of processes. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Acked-by:
Pavel Emelyanov <xemul@parallels.com> Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org>
d6a1cd0f
| Name |
Last commit
|
Last update |
|---|---|---|
| include | ||
| test | ||
| .gitignore | ||
| COPYING | ||
| Makefile | ||
| README | ||
| TODO | ||
| cr-dump.c | ||
| cr-restore.c | ||
| cr-show.c | ||
| crtools.c | ||
| files.c | ||
| gen-offsets.sh | ||
| libnetlink.c | ||
| log.c | ||
| parasite-syscall.c | ||
| parasite.c | ||
| parasite.lds.S | ||
| ptrace.c | ||
| restorer.c | ||
| sockets.c | ||
| util.c |