{"push_id":3013515605,"size":1000,"distinct_size":13,"ref":"refs/heads/docker","head":"0c507ad7db10a3753713dc563bd04a3455d8853b","before":"3c8b3fbf6135eafddf64ae7e28e33bdce3b3ddb8","commits":[{"sha":"27662f2547e2d85feb669a934202dd5a0ed102ff","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"lazy-pages: handle exit() based on uffdio_copy return value\n\nThe UFFDIO_EVENT_EXIT didn't make it upstream because of possible races in\nexit() syscall [1].\nThe only way to detect that the monitored process is exited is checking for\nENOSPC errno value set by uffdio_copy.\n\n[1] http://www.spinics.net/lists/linux-mm/msg122467.html\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/27662f2547e2d85feb669a934202dd5a0ed102ff"},{"sha":"583a399732e6985bff19434cb95d42b078f9d35a","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"Update criu/include/linux/userfaultfd.h\n\nThis is the version from v4.11-rc5. Apparently, that would be the userfault\nABI for the next few month.\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/583a399732e6985bff19434cb95d42b078f9d35a"},{"sha":"bd39d5edc5137eb03fad7b68d5cee6c6f810285b","author":{"name":"Mike Rapoport","email":"02f830dbf959efedb9bcd138695cba2d1753984b@gmail.com"},"message":"travis: add lazy-pages run\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/bd39d5edc5137eb03fad7b68d5cee6c6f810285b"},{"sha":"516b7795517bfccc1254c7b0e027856c33d75383","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"travis-test: select tests skipped by lazy-pages pass more carefully\n\nMost of zdtm test should pass with --lazy-pages with kernels newer than\n4.11.\nSome test excluded for older kernels surprisingly pass even now, mainly\nbecuase they do not actually stress userfaultfd, which will be fixed in the\nupcoming commits :)\nThe cmdlinenv00 fails even with kernel 4.11 because of a race between uffd\nand gup in the case external process reads /proc/<pid>/cmdline before\nmemory containing the command line is populated.\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/516b7795517bfccc1254c7b0e027856c33d75383"},{"sha":"a9ea60f8b36dac1f67e0873a114088b266bd5d48","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"zdtm: check lazy-pages and page-server exit status after test is gone\n\nWhen running with --lazy-pages or --remote-lazy-pages, the daemons should\nrun in the background, rather than complete before t.stop() is called.\nMany tests try to verify things are ok after test_waitsig() and that's\nexactly the place where they access memory and cause page faults.\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/a9ea60f8b36dac1f67e0873a114088b266bd5d48"},{"sha":"eb261b579d6c8d03cac66bcb7ce81b06eff75dd9","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"zdtm: introduce 'noremotelazy' flag\n\nThis allows skipping tests that are not yet run with --remote-lazy-pages,\nbut can be run with --lazy-pages\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/eb261b579d6c8d03cac66bcb7ce81b06eff75dd9"},{"sha":"459b833a8ee87fc7c0310ff3a95346febb5bf564","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"zdtm: enable fork tests with --lazy-pages\n\nThey still will fail with --remote-lazy-pages, so mark them as\n'noremotelazy'\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/459b833a8ee87fc7c0310ff3a95346febb5bf564"},{"sha":"9354582fd2b143fb0686852d29db2f439031b8c1","author":{"name":"Pavel Emelyanov","email":"c9a32589e048e044184536f7ac71ef92fe82df3e@virtuozzo.com"},"message":"kdat: Relax uffd checks (v2)\n\nv2: When uffd is present, the reported features may still be 0,\n    so we need one more bool for uffd syscall itself.\n\nSigned-off-by: Pavel Emelyanov <xemul@virtuozzo.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/9354582fd2b143fb0686852d29db2f439031b8c1"},{"sha":"7c108b8b8db351c1940a9cde7019e7a67e093dc0","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"lazy-pages: make the check for outstanding request more strict\n\nThere could be several outstaning requests for the same page, either from\npage fault handler or from handle_remaining_pages. Verifying that the\nfaulting address is already requested is not enough. We need to check if\nthere any request in flight that covers the faulting address.\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nAcked-by: Pavel Emelyanov <xemul@virtuozzo.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/7c108b8b8db351c1940a9cde7019e7a67e093dc0"},{"sha":"a364f05bf9ba1e330ad727f070743aefdfb34d31","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"lazy-pages: handle_remaining_pages: enable asynchronous reads\n\nUntil now once we've started to fetch an iovec we've been waiting until\nit's completely copied before returning to event processing loop. Now we\ncan have several request for the remote pages in flight.\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nAcked-by: Pavel Emelyanov <xemul@virtuozzo.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/a364f05bf9ba1e330ad727f070743aefdfb34d31"},{"sha":"1ad1400c8bc6be7a2368f03deef4e6b87bb0f600","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"lazy-pages: use random read from page-pipe instead of splitting it\n\nFor the remote lazy pages case, to access pages in the middle of a pipe we\nare splitting the page_pipe_buffers and iovecs and use splice() to move the\ndata between the underlying pipes. After the splits we get page_pipe_buffer\nwith single iovec that can be used to splice() the data further into the\nsocket.\nThis patch replaces the splitting and splicing with use of a helper pipe\nand tee(). We tee() the pages from beginning of the pipe up to the last\nrequested page into a helper pipe, sink the unneeded head part into\n/dev/null and we get the requested pages ready for splice() into the\nsocket.\nThis allows lazy-pages daemon to request the same page several time, which\nis required to properly support fork() after the restore.\nAs added bonus we simplify the code and reduce amount of pipes that live in\nthe system.\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nAcked-by: Pavel Emelyanov <xemul@virtuozzo.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/1ad1400c8bc6be7a2368f03deef4e6b87bb0f600"},{"sha":"5306cd0fe8a1af87ad3afe219b4f113621c593ed","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"lazy-pages: don't close page-read for child processes\n\nThe page-read for child process is a shallow copy of the parent process\npage-read. They share the open file descriptors and the pagemap.\nThe lpi_fini of the child processes should not release any resources, they\nall will be released during lpi_fini of the parent process.\n\nFixes: #325\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/5306cd0fe8a1af87ad3afe219b4f113621c593ed"},{"sha":"77c115f3bf024bf0252fc26f5e83a98269ac4578","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"test: enable fork* tests for --remote-lazy-pages\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/77c115f3bf024bf0252fc26f5e83a98269ac4578"},{"sha":"0ebf7b81fa26b1abe6b1b727b668d0202a2f5597","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"test/jenkins: update lazy-pages testing\n\n* select excluded tests based on the kernel version\n* test local and remote lazy-pages with and withour pre-dump\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/0ebf7b81fa26b1abe6b1b727b668d0202a2f5597"},{"sha":"47b943862823e4dc5576a40cadd2a5a71ce2da7b","author":{"name":"Mike Rapoport","email":"6432ce95675be77d61ce23efe20f472ee21e9f31@linux.vnet.ibm.com"},"message":"test/travis: update lazy-pages testing\n\n* drop --keep-going etc from --lazy-pages pass\n* add --remote-lazy-pages pass\n\nSigned-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/47b943862823e4dc5576a40cadd2a5a71ce2da7b"},{"sha":"b801cd68d96944c2610136fc8c718a1ad934d49f","author":{"name":"Pavel Emelyanov","email":"c9a32589e048e044184536f7ac71ef92fe82df3e@virtuozzo.com"},"message":"page-server: Introduce page_server_start_sync_read\n\nThere's no need in two API calls to read xfer header\nand pages themselves, so merge them into one single\ncall.\n\nSigned-off-by: Pavel Emelyanov <xemul@virtuozzo.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/b801cd68d96944c2610136fc8c718a1ad934d49f"},{"sha":"832f3844f6109e3d4eded0a24033a8c74c6db4ba","author":{"name":"Pavel Emelyanov","email":"c9a32589e048e044184536f7ac71ef92fe82df3e@virtuozzo.com"},"message":"page-server: Unify async/sync calls\n\nThe newly introduced sync-read call may look exactly\nthe same as its async pair by using the respective\ncomplete callback.\n\nSigned-off-by: Pavel Emelyanov <xemul@virtuozzo.com>\nAcked-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/832f3844f6109e3d4eded0a24033a8c74c6db4ba"},{"sha":"2cc7e90d5bb88ea5da5a9968d606d15e3389c707","author":{"name":"Pavel Emelyanov","email":"c9a32589e048e044184536f7ac71ef92fe82df3e@virtuozzo.com"},"message":"page-server: Merge async and sync read API calls\n\nNow these two look exactly the same and we can have\nonly one call with additional sync/async (flags) arg.\n\nSigned-off-by: Pavel Emelyanov <xemul@virtuozzo.com>\nAcked-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/2cc7e90d5bb88ea5da5a9968d606d15e3389c707"},{"sha":"b31a5d67b31b9b71faa2e97ea5d11e2607447877","author":{"name":"Pavel Emelyanov","email":"c9a32589e048e044184536f7ac71ef92fe82df3e@virtuozzo.com"},"message":"page-server: Split the code doing async page-read (v2)\n\nThis is prerequisite for the next patch.\n\nv2: spellchecks, code reshuffle\n\nSigned-off-by: Pavel Emelyanov <xemul@virtuozzo.com>\nAcked-by: Mike Rapoport <rppt@linux.vnet.ibm.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/b31a5d67b31b9b71faa2e97ea5d11e2607447877"},{"sha":"c8717da44cad4942f2f1e17e7d32010bbd111ee9","author":{"name":"Pavel Emelyanov","email":"c9a32589e048e044184536f7ac71ef92fe82df3e@virtuozzo.com"},"message":"page-server: Make sync-read re-use the async reading code\n\nNow we have two separate recv-calling routines, that receive\nheader and pages from page-server. These two can finally be\nunified.\n\nAfter this the sync-read code looks like -- start async one\nand wait for it to finish right at once.\n\nSigned-off-by: Pavel Emelyanov <xemul@virtuozzo.com>\nSigned-off-by: Andrei Vagin <avagin@virtuozzo.com>","distinct":false,"url":"https://api.github.com/repos/avagin/criu/commits/c8717da44cad4942f2f1e17e7d32010bbd111ee9"}]}
{"actor":{"display_login":"avagin"}}