[CRIU] [PATCHv1 0/8] Implement anonymous shared memory deduplication

Eugene Batalov eabatalov89 at gmail.com
Wed Dec 16 05:12:08 PST 2015


This patchset implements 3 types of shared memory deduplication:
1. Manual anonymous shared memory image deduplication on criu dedup command.
2. Anonymous shared memory pages autodedup on criu dump command.
   Kernel provided SOFT_DIRTY bits + parent anon shmem image are used.
   As with private anon mem this is enabled using --auto-dedup option.
3. Anonymous shared memory pages autodedup on criu restore command.
   Each restored page is removed from anon shmem dump.
   As with private anon mem this is enabled using --auto-dedup option.

This patchset heavily reuses existing page-read/xfer code
to implement the most of its new features.

=== v0 to v1 changes ===
- Collect separate longest vma sizes for private and shared
  anonymous memory.
- Reset process memory soft dirty bits 'symmetrically' in
  pre_dump_one_task() and dump_one_task().
- Remove 2nd PMC walk. Reuse process VMA loop in
  __parasite_dump_pages_seized().
- Use single page_in_parent() routine (don't use ots copy-paste).


Fyodor Bocharov(8):
  vma: rename longest to priv_longest
  proc_parse: collect longest shared vma size
  mem: reset SOFT_DIRTY bits after dumping of all vmas in the process
  shmem: implement dirty page tracking for anon shared memory
  page-read/xfer: add ability to open image hierarchy for shmem
  mem: generalize page_in_parent function and make it extern
  shmem: implement anon shared memory dedup on dump
  shmem: implement manual anon shared memory dedup

 cr-dedup.c          | 23 +++++++++----
 cr-dump.c           | 12 +++++--
 include/mem.h       |  2 ++
 include/page-read.h |  4 +--
 include/shmem.h     |  3 +-
 include/vma.h       |  6 ++--
 mem.c               | 40 +++++++++++++----------
 page-read.c         | 12 +++----
 page-xfer.c         |  5 +--
 proc_parse.c        | 10 ++++--
 shmem.c             | 94 ++++++++++++++++++++++++++++++-----------------------
 11 files changed, 129 insertions(+), 82 deletions(-)

-- 
1.9.1



More information about the CRIU mailing list