[CRIU] [PATCH v3 17/19] pagemap: add ability to request remote pages

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


The asynchronous version of remote page_read will send the request to the
dump side and return happily.
The response will be handled by the uffd.c because it's epoll loop is the
only place where we can handle events.

Signed-off-by: Mike Rapoport <rppt at linux.vnet.ibm.com>
---
 criu/pagemap.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/criu/pagemap.c b/criu/pagemap.c
index 728b031..61ab814 100644
--- a/criu/pagemap.c
+++ b/criu/pagemap.c
@@ -399,7 +399,11 @@ static int maybe_read_page_remote(struct page_read *pr, unsigned long vaddr,
 	int ret;
 
 	if (flags & PR_ASYNC)
-		ret = -1;	/* not yet supported */
+		/*
+		 * Note, that for async remote page_read, the actual
+		 * transfer happens in the lazy-pages daemon
+		 */
+		ret = request_remote_pages(pr->pid, vaddr, len / PAGE_SIZE);
 	else
 		ret = get_remote_pages(pr->pid, vaddr, len / PAGE_SIZE, buf);
 
-- 
1.9.1



More information about the CRIU mailing list