[CRIU] [PATCH v5 0/8] lazy-pages: add support for remote pages

Mike Rapoport rppt at linux.vnet.ibm.com
Tue Jun 28 22:55:05 PDT 2016


Hi,

Yet another respin.
The most significant difference is addition of lazy and zero pages notion.
This makes the pagemap somewaht more consistent. The zero pages were not
strictly necessary for the current series, but I think that this
information will be very relevant for lazy-pages performance optimizations.

v5 changes:
* added notion of zero pages and lazy pages in the pagemap.
* added several tcp_{cork,nodelay} to speedup network tranfers

v4 changes:
* fixed ppb_alloc_resize to pass nr_pages instead of nr_bytes to fcntl
* added removal of ppb's right after they are spliced to socked

v3 changes:
* fixed initialization of pp->own_iovs, thanks Mr. Jenkins

v2 changes:
* added helpers to page-xfer to reduce code duplication
* modified protocol between dump side page server and lazy pages daemon as
per Pavel's comments
* some changes in the way parasite_dump_pages_seized is refactored. There's
still more to improve here, even without addition of lazy pages support :)

TODO:
* cointinue refactoring of page-reader to support random access and remote
page reads
* make lazy-pages non-blocking with respect to #PFs
* performance imporvements

Mike Rapoport (8):
  criu: page-pipe: add ability to allocate IOVs
  criu: slightly refactor memory dump to support delaying it
  criu: page-pipe: add a wrapping structure for holes and pages iovs
  criu: page-{pipe,xfer}: add helper function for dumping holes
  criu: pagemap: add entries for zero pages
  criu: add ability to skip writing lazy pages
  criu: page-xfer: add PS_IOV_GET interface
  criu: lazy-pages: enable remoting of lazy pages

 criu/cr-dump.c                  |  57 +++++++---
 criu/include/mem.h              |   3 +-
 criu/include/page-pipe.h        |  33 ++++--
 criu/include/page-xfer.h        |   6 +-
 criu/include/parasite-syscall.h |   1 -
 criu/include/pstree.h           |   2 +
 criu/include/stats.h            |   2 +
 criu/mem.c                      |  72 ++++++++-----
 criu/page-pipe.c                | 102 +++++++++++-------
 criu/page-xfer.c                | 234 ++++++++++++++++++++++++++++++----------
 criu/pagemap.c                  |  27 +++--
 criu/parasite-syscall.c         |   2 +
 criu/shmem.c                    |  13 +--
 criu/stats.c                    |   2 +
 criu/uffd.c                     |   9 +-
 images/pagemap.proto            |   2 +
 images/stats.proto              |   3 +
 17 files changed, 402 insertions(+), 168 deletions(-)

-- 
1.9.1



More information about the CRIU mailing list