<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://criu.org/index.php?action=history&amp;feed=atom&amp;title=Google_Summer_of_Code_2019</id>
	<title>Google Summer of Code 2019 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://criu.org/index.php?action=history&amp;feed=atom&amp;title=Google_Summer_of_Code_2019"/>
	<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Google_Summer_of_Code_2019&amp;action=history"/>
	<updated>2026-05-13T18:27:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.6</generator>
	<entry>
		<id>https://criu.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=4995&amp;oldid=prev</id>
		<title>Radostin: Created page with &quot;This page lists accepted projects that were completed during [https://summerofcode.withgoogle.com Google Summer of Code 2019]. For the list of ideas go Google Summer of Code...&quot;</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=4995&amp;oldid=prev"/>
		<updated>2020-01-19T20:30:32Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;This page lists accepted projects that were completed during [https://summerofcode.withgoogle.com Google Summer of Code 2019]. For the list of ideas go Google Summer of Code...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page lists accepted projects that were completed during [https://summerofcode.withgoogle.com Google Summer of Code 2019]. For the list of ideas go [[Google Summer of Code Ideas|here]].&lt;br /&gt;
&lt;br /&gt;
==Student final submissions==&lt;br /&gt;
&lt;br /&gt;
=== Abhishek Dubey - Optimize the pre-dump algorithm ===&lt;br /&gt;
&lt;br /&gt;
'''Final report''': https://dubeyabhishek.github.io/GSoC19CRIU/&lt;br /&gt;
&lt;br /&gt;
'''Summary:''' Optimize the pre-dump algorithm to avoid pinning to many memory in RAM&lt;br /&gt;
 &lt;br /&gt;
Current [[CLI/cmd/pre-dump|pre-dump]] mode is used to write task memory contents into image&lt;br /&gt;
files w/o stopping the task for too long. It does this by stopping the task, infecting it and&lt;br /&gt;
draining all the memory into a set of pipes. Then the task is cured, resumed and the pipes'&lt;br /&gt;
contents is written into images (maybe a [[page server]]). Unfortunately, this approach creates&lt;br /&gt;
a big stress on the memory subsystem, as keeping all memory in pipes creates a lot of unreclaimable&lt;br /&gt;
memory (pages in pipes are not swappable), as well as the number of pipes themselves can be huge, as&lt;br /&gt;
one pipe doesn't store more than a fixed amount of data (see pipe(7) man page).&lt;br /&gt;
&lt;br /&gt;
A solution for this problem is to use a sys_read_process_vm() syscall, which will mitigate&lt;br /&gt;
all of the above. To do this we need to allocate a temporary buffer in criu, then walk the&lt;br /&gt;
target process vm by copying the memory piece-by-piece into it, then flush the data into image&lt;br /&gt;
(or page server), and repeat.&lt;br /&gt;
&lt;br /&gt;
Ideally there should be sys_splice_process_vm() syscall in the kernel, that does the same as&lt;br /&gt;
the read_process_vm does, but vmsplices the data&lt;br /&gt;
&lt;br /&gt;
'''Links:'''&lt;br /&gt;
* [[Memory pre dump]]&lt;br /&gt;
* https://github.com/checkpoint-restore/criu/issues/351&lt;br /&gt;
* [[Memory dumping and restoring]], [[Memory changes tracking]]&lt;br /&gt;
* [http://man7.org/linux/man-pages/man2/process_vm_readv.2.html process_vm_readv(2)] [http://man7.org/linux/man-pages/man2/vmsplice.2.html vmsplice(2)] [https://lkml.org/lkml/2018/1/9/32 RFC for splice_process_vm syscall]&lt;br /&gt;
&lt;br /&gt;
'''Details:'''&lt;br /&gt;
* Skill level: advanced&lt;br /&gt;
* Language: C&lt;br /&gt;
* Mentor: Pavel Emelianov &amp;lt;xemul@virtuozzo.com&amp;gt;&lt;br /&gt;
* Suggested by: Pavel Emelianov &amp;lt;xemul@virtuozzo.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>Radostin</name></author>
	</entry>
</feed>