[CRIU] [PATCH v3 00/19] uffd: A new set of improvements

Mike Rapoport rppt at linux.vnet.ibm.com
Tue Nov 15 08:57:09 PST 2016


Hi,

This is combined respin of remaining uffd improvements [1] and
de-synchronization of remote page transfers [2].

So, in a nutshell, these patches replace page lists with IOV lists in
uffd.c, enable asynchronous remote pages transfer and allow transferring
pages that had not faulted in large chunks, no matter locally or remotely.

An immediate improvement we'd also need after these are merged is to
restore hash table of lazy_pages_info, replacing hash key with pid rather
than uffd. Pavel, that's on you ;-)

v3:
* merge two sets along with patches I've forgot to send at the first place
* fix compilation with clang and on arm

[1] https://lists.openvz.org/pipermail/criu/2016-November/033085.html
[2] https://lists.openvz.org/pipermail/criu/2016-November/033119.html

Mike Rapoport (18):
  criu: pagemap: make advance a public method
  criu: lazy-pages: replace page list with IOVs list
  lazy-pages: refactor uffd_handle_page
  lazy-pages: fix zero pages handling
  criu: lazy_pages: make buffer for copying pages per-process
  lazy-pages: drop _page suffix from uffd_{copy,zero}_page
  criu: lazy-pages: add nr_pages parameter to uffd_{copy,zero}
  criu: lazy-pages: add nr (of pages) parameter to handle_regular_pages
  criu: lazy-pages: copy remaining IOVs in chunks
  criu: page-xfer: get_remote_page: respect nr_pages parameter
  lazy-pages: extend the page_read with ability to read remote pages
  lazy-pages: make uffd_{copy,zero} return 0 on success
  page-xfer: make connect_to_page_server return socket fd
  page-xfer: add methods for requesting and receiving remote pages
  lazy-pages: introduce uffd_seek_or_zero_pages
  pagemap: add ability to request remote pages
  lazy-pages: implement semi-async remote page transfer
  lazy-pages: unblock second receive in page_server_event

Pavel Emelyanov (1):
  uffd: Introduce lazy_pages_fd as preparation for socket polling

 criu/cr-dump.c           |   4 +-
 criu/include/page-xfer.h |  17 ++
 criu/include/pagemap.h   |  11 +-
 criu/page-xfer.c         |  52 ++++-
 criu/pagemap.c           |  37 ++-
 criu/uffd.c              | 578 ++++++++++++++++++++++++++++++-----------------
 6 files changed, 483 insertions(+), 216 deletions(-)

-- 
1.9.1



More information about the CRIU mailing list