[CRIU] [PATCH v3 00/11] lazy-pages: add support for remote pages

Adrian Reber areber at redhat.com
Fri Jun 3 08:18:19 PDT 2016


I had a look at your patchset and I also tried to migrate a process with
it. I was able to migrate a small process without a problem but if fails
with a process that requires 200MB of memory. Trying to understand where
it fails I wished for some more debug output. Especially at the highest
verbosity level I would like to see how many pages were already
transferred, how many are missing, which page is transferred. Something
like that.

The failure with the 200MB process happens at:

ppb_resize_pipe()
 ret = fcntl(ppb->p[0], F_SETPIPE_SZ, new_size * PAGE_SIZE);

with following parameters new_size = 2093056

This is the first time ppb_resize_pipe() is called during my test.

So overall I really like this. Thanks for doing this!

Oh, and the From address from this mail (rapoport at linux.vnet.ibm.com)
does not exist.

		Adrian

On Wed, Jun 01, 2016 at 12:01:33AM +0300, Mike Rapoport wrote:
> From: Mike Rapoport <rppt at linux.vnet.ibm.com>
> 
> Hi,
> 
> This is essentially v2 plus small fix. I'm resending the entire set to see
> if CI fill find some other bugs :)
> 
> 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:
> * refactor page-reader to support random access and remote page reads
> * make lazy-pages non-blocking with respect to #PFs
> * performance imporvements
> 
> Mike Rapoport (11):
>   criu: page-pipe: introduce page_pipe_buf manipulation helpers
>   criu: page_pipe_buf: add PPB_LAZY flag
>   criu: page-pipe: introduce page_pipe_split
>   criu: page-xfer: move code aroud
>   criu: page-xfer: intorduce helpers for sending IOVs
>   criu: page-xfer: add ability to skip writing lazy pages
>   criu: page-xfer: add PS_IOV_GET interface
>   criu: uffd: add --lazy-addr option
>   criu: slightly refactor memory dump to support delaying it
>   criu: page-pipe: add ability to allocate IOVs
>   criu: lazy-pages: enable remoting of lazy pages
> 
>  criu/cr-dump.c                  |   57 +-
>  criu/crtools.c                  |    4 +
>  criu/include/cr_options.h       |    1 +
>  criu/include/mem.h              |    3 +-
>  criu/include/page-pipe.h        |    9 +-
>  criu/include/page-xfer.h        |    4 +-
>  criu/include/parasite-syscall.h |    1 -
>  criu/include/pstree.h           |    1 +
>  criu/mem.c                      |   52 +-
>  criu/page-pipe.c                |  329 ++++++++++--
>  criu/page-read.c                |    2 +-
>  criu/page-xfer.c                | 1116 +++++++++++++++++++++------------------
>  criu/parasite-syscall.c         |    2 +
>  criu/shmem.c                    |    4 +-
>  criu/uffd.c                     |   35 +-
>  15 files changed, 992 insertions(+), 628 deletions(-)
> 
> -- 
> 1.9.1
> 


More information about the CRIU mailing list