-
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 |
|---|---|---|
| .. | ||
| atomic.h | ||
| bitops.h | ||
| compiler.h | ||
| crtools.h | ||
| image.h | ||
| libnetlink.h | ||
| list.h | ||
| lock.h | ||
| log.h | ||
| parasite-syscall.h | ||
| parasite.h | ||
| ptrace.h | ||
| restorer.h | ||
| sockets.h | ||
| syscall-codes.h | ||
| syscall.h | ||
| types.h | ||
| unix_diag.h | ||
| util.h |