[CRIU] More uffd related questions (Error (page-read.c:128): Missing 7fff408d8000 in parent pagemap)
Adrian Reber
adrian at lisas.de
Mon Nov 30 02:57:06 PST 2015
On Mon, Nov 30, 2015 at 01:44:00PM +0300, Pavel Emelyanov wrote:
> On 11/30/2015 01:26 PM, Adrian Reber wrote:
> > On Mon, Nov 30, 2015 at 01:24:30PM +0300, Pavel Emelyanov wrote:
> >>
> >>>> This is mm.img part, while page-read engine deals with pagemap-xxx.img files where
> >>>> triplets of [start len in_parent] sit.
> >>>
> >>> Ah, okay. This is my error. The page I am trying to copy does indeed not
> >>> exist in the pagemap:
> >>>
> >>> {
> >>> "vaddr": "0x7f8025f6e000",
> >>> "nr_pages": 5
> >>> },
> >>> {
> >>> "vaddr": "0x7fff408d9000",
> >>> "nr_pages": 3
> >>> },
> >>> {
> >>> "vaddr": "0x7fff409c2000",
> >>> "nr_pages": 2
> >>> }
> >>>
> >>> So to decide which pages I have to copy I only have to look at the content
> >>> of pagemap-xxx.img and not mm.img, right? Good to know.
> >>
> >> Yes, the pagemap.img describes the physical memory dumped into the image files.
> >
> > Going over all vma entries with something like
> >
> > list_for_each_entry(vma, vmas, list) {
> >
> > How do I know if an area has been dumped or not?
>
> If it's on restore, then the list is likely got from image, isn't it?
It is during restore, yes. I currently don't understand the difference
between mm.img and pagemap.img. In mm.img I see a couple of pages in
{
"start": "0x7fff408ba000",
"end": "0x7fff408dc000",
"pgoff": 0,
"shmid": 0,
"prot": "PROT_READ | PROT_WRITE",
"flags": "MAP_PRIVATE | MAP_ANON | MAP_GROWSDOWN",
"status": "0x201",
"fd": -1,
"fdflags": "0x0"
},
in pagemap.img it tells me only 5 pages in this range of 22 pages have
actually been dumped:
{
"vaddr": "0x7fff408d9000",
"nr_pages": 3
},
{
"vaddr": "0x7fff409c2000",
"nr_pages": 2
}
I have only a single pages-1.img.
So if I want to loop over all pages how do I know which pages have
actually been dumped? How do I know the difference between the 5 pages
in pagemap.img and the 22 pages in mm.img in that memory area?
Adrian
More information about the CRIU
mailing list