[CRIU] [RFC PATCH 00/16] criu: lazy-pages: use IOVs for lazy pages bookkeeping

Mike Rapoport rppt at linux.vnet.ibm.com
Tue Sep 27 06:42:01 PDT 2016


Hi,

This patchset tries to optimize lazy pages bookkeeping by replacing lists
of pages with lists of IOVs.
With the recent changes in pagemap, it is possible to completely rely on
PagemapEntry information to determine whether certain page range can be
supported by userfaultfd. This allows to keep smaller data structure for
internal bookkeeping in the lazy-pages daemon.

The series is an early RFC, I just wanted to get some feedback before
continuing moving further.

Mike Rapoport (16):
  criu: page-xfer: get_remote_page: respect nr_pages parameter
  criu: pagemap: make advance a public method
  criu: lazy-pages: introduce collect_lazy_iovecs
  criu: lazy-pages: handle remaining pages based on IOVs rather than
    pages
  criu: lazy_pages: remove pages list updates from handle_user_fault
  criu: lazy_pages: remove pages list updates from handle_regular_pages
  criu: lazy_pages: use only IOV lists for bookkeeping
  criu: lazy_pages: drop find_vmas
  criu: lazy_pages: drop struct uffd_pages
  criu: lazy_pages: make buffer for copying pages per-process
  criu: lazy-pages: drop _page suffix from uffd_{copy,zero}_page
  criu: lazy-pages: s/get_page/get_pages/
  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: lazy-pages: actually use nr_pages for get_remote_pages

 criu/include/pagemap.h |   4 +-
 criu/page-xfer.c       |   5 +-
 criu/pagemap.c         |   1 +
 criu/uffd.c            | 380 ++++++++++++++++++++-----------------------------
 4 files changed, 165 insertions(+), 225 deletions(-)

-- 
1.9.1



More information about the CRIU mailing list