Memory dumping and restoring

From CRIU
Revision as of 21:15, 14 May 2013 by Xemul (talk | contribs)
Jump to navigation Jump to search

How it works now

Dumping

Currently memory dumping depends on 3 big technologies:

  • /proc/pid/map_files/ directory with links is used to determine
    • which file is mapped
    • shared memory "identifier" to detect the sharing
  • proc pagemap file says which pages are to be dumped and which are not (to be fixed as well)
  • Ptrace SEIZE is used to grab pages from task's VM into pipe (with vmsplice)

Restoring

This one depends only on the /proc/pid/map_files/ to restore the shmem regions -- tasks just open some other's link and map it to create shmem region. The pages restoration just writes page data "in place".

Non linear mappings

Currently we don't support non-linear mappings (fail dump if present)