[CRIU] Combining pre-copy and post-copy

Adrian Reber adrian at lisas.de
Mon Feb 13 02:02:59 PST 2017


Hello Mike,

I have to come back to an old topic from September:

https://lists.openvz.org/pipermail/criu/2016-September/031672.html

I am currently trying to restore a process with pre-copy and post-copy
and it fails. The reason it fails is that the kernel claims that a page
is already there:

(03.614379) polling timeout
(03.614389) uffd: Start handling remaining pages
(03.614393) pr15740-2 Read b0e000 1 pages
(03.618349) uffd: 15740-6: uffd_copy: 0xb0e000/4096
(03.618368) Error (criu/uffd.c:682): uffd: 15740-6: UFFDIO_COPY failed: rc:-1 copy:-17

According to the pagemap it is a lazy page:

        {
            "vaddr": "0xb0e000", 
            "nr_pages": 1, 
            "flags": "PE_LAZY"
        }, 

But the kernel thinks it is already there. If I manually do an madvise MADV_DONTNEED
the uffd_copy works. So it seems somehow that the kernel thinks that the page
has already been written.

Any idea what is going on here?

		Adrian


More information about the CRIU mailing list