-
Cyrill Gorcunov authored
Restorer does really restore shared memory (including page contents restore) only on master process, while all other processes do open such memory area via map_files/ procfs entry so that we might have a situation when shared VMA is present in some particular core-%d.img file but it's not listed in collected shmems array and find_shmem_by_pid will return NULL. This is perfectly fine, be ready for that. Another issue is that shared memory might look like CR_FD_SHMEM: /home/cyrill/projects/kernel/crtools/shmem-2641.img ---------------------------------------- 0x7f2200775000-0x7f2200776000 id 19664 0x7f2200776000-0x7f2200777000 id 19663 ---------------------------------------- So vma area is [x;y) range and we should distinguish two shmem lookup cases - one when we search for page in shmem area - second when we lookup shmem area in collected ranges They both have a different lookup conditions so single find_shmem splitted into two helpers find_shmem and find_shmem_page as appropriate. This patch finally fixes the three process asynchronious shared memory updates test-case. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org>
5d5e8b80
Name |
Last commit
|
Last update |
---|---|---|
include | ||
test | ||
.gitignore | ||
COPYING | ||
Makefile | ||
README | ||
TODO | ||
cr-dump.c | ||
cr-restore.c | ||
cr-show.c | ||
crtools.c | ||
gen-offsets.sh | ||
libnetlink.c | ||
log.c | ||
parasite-syscall.c | ||
parasite.c | ||
parasite.lds.S | ||
ptrace.c | ||
restorer.c | ||
sockets.c | ||
util.c |