<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://criu.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kir</id>
	<title>CRIU - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://criu.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kir"/>
	<link rel="alternate" type="text/html" href="https://criu.org/Special:Contributions/Kir"/>
	<updated>2026-04-09T17:06:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.6</generator>
	<entry>
		<id>https://criu.org/index.php?title=Releasing&amp;diff=5643</id>
		<title>Releasing</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Releasing&amp;diff=5643"/>
		<updated>2025-05-23T01:21:00Z</updated>

		<summary type="html">&lt;p&gt;Kir: /* Wiki */ more details&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a reminder of steps needed to roll out a new release.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
* Fix &amp;lt;code&amp;gt;Makefile.versions&amp;lt;/code&amp;gt;&lt;br /&gt;
* Commit: &amp;lt;code&amp;gt;git commit -m &amp;quot;criu: Version $version&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Merge it like any other criu changes (create a github pr, get it approved, etc)&lt;br /&gt;
* Tag: &amp;lt;code&amp;gt;git tag -a v$version -m '$summary'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Push: &amp;lt;code&amp;gt;git push origin v$version&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wiki ==&lt;br /&gt;
&lt;br /&gt;
You can use the following as a checklist.&lt;br /&gt;
&lt;br /&gt;
* Make sure ''previous version'' is listed in [[Releases#Old versions]]&lt;br /&gt;
* Add release metadata:&lt;br /&gt;
** name to [[Template:Codename]]&lt;br /&gt;
** date to [[Template:Release date]]&lt;br /&gt;
* Add an image for the new version&lt;br /&gt;
* Create [[Download/criu/NEWVERSION]] (for example, see [[Download/criu/{{Last version}}]])&lt;br /&gt;
* Bump [[Template:Last version]]&lt;br /&gt;
* Add new version to [[Changelogs]]&lt;br /&gt;
* Fixup [[Release schedule]]&lt;br /&gt;
** remove new version from [[Release schedule#Future releases]]&lt;br /&gt;
** add previous version to [[Release schedule#Past releases]]&lt;br /&gt;
&lt;br /&gt;
== Announces ==&lt;br /&gt;
&lt;br /&gt;
* Send an announcement to the criu mailing list.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
* Update the CRIU packages in [https://build.opensuse.org/project/show/devel:tools:criu Open Build Service] and [https://launchpad.net/~criu Launchpad].&lt;br /&gt;
&lt;br /&gt;
[[Category: development]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Changelog&amp;diff=5642</id>
		<title>Template:Changelog</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Changelog&amp;diff=5642"/>
		<updated>2025-05-23T01:11:51Z</updated>

		<summary type="html">&lt;p&gt;Kir: remove &amp;quot;v. &amp;quot; prefix from header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== {{{1}}} ==&lt;br /&gt;
{{:Download/criu/{{{1}}}}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Changelogs&amp;diff=5641</id>
		<title>Changelogs</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Changelogs&amp;diff=5641"/>
		<updated>2025-05-23T01:09:59Z</updated>

		<summary type="html">&lt;p&gt;Kir: add 4.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains all the changelogs for all the released CRIU versions. This is mostly useful for doing a search.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;noautonum&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{fe|Changelog|{{nln}}|4.1|4.0|3.19|3.18|3.17.1|3.17|3.16.1|3.16|3.15|3.14|3.13|3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0|2.12.1|2.12|2.11.1|2.11|2.10|2.9|2.8|2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0|1.8|1.7.2|1.7|1.6.1|1.6|1.5.2|1.5.1|1.5|1.4|1.3.1|1.3|1.3-rc2|1.3-rc1|1.2|1.1|1.1-rc2|1.1-rc1|1.0|0.8|0.7|0.6|0.5|0.4|0.3|0.2|0.1}}&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu&amp;diff=5640</id>
		<title>Download/criu</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu&amp;diff=5640"/>
		<updated>2025-05-22T20:56:46Z</updated>

		<summary type="html">&lt;p&gt;Kir: /* Old versions */ add 4.x&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noautonum&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Latest version ==&lt;br /&gt;
&lt;br /&gt;
{{:Download/criu/{{Last version}}}}&lt;br /&gt;
&lt;br /&gt;
== Old versions ==&lt;br /&gt;
&lt;br /&gt;
=== 4.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/4.x|4.x]] releases were made:&lt;br /&gt;
* {{fe|criu|{{nln}}* |4.0}}&lt;br /&gt;
&lt;br /&gt;
=== 3.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/3.x|3.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |3.19|3.18|3.17.1|3.17|3.16.1|3.16|3.15|3.14|3.13|3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0}}&lt;br /&gt;
&lt;br /&gt;
=== 2.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/2.x|2.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |2.12.1|2.12|2.11.1|2.11|2.10|2.9|2.8|2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0}}&lt;br /&gt;
&lt;br /&gt;
=== 1.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/1.x|1.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |1.8|1.7.2|1.7|1.6.1|1.6|1.5.2|1.5.1|1.5|1.4|1.3.1|1.3|1.3-rc2|1.3-rc1|1.2|1.1|1.1-rc2|1.1-rc1|1.0}}&lt;br /&gt;
&lt;br /&gt;
=== 0.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/0.x|0.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |0.8|0.7|0.6|0.5|0.4|0.3|0.2|0.1}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Changelogs]] to see all the changelogs on a single page.&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu/4.x&amp;diff=5639</id>
		<title>Download/criu/4.x</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu/4.x&amp;diff=5639"/>
		<updated>2025-05-22T20:56:22Z</updated>

		<summary type="html">&lt;p&gt;Kir: created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists older (4.x) CRIU releases. For latest release, see [[Download/criu]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;noautonum&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{fe|Changelog|{{nln}}|4.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Download/criu]] for the latest release and archives&lt;br /&gt;
* [[Download/criu/3.x]] for 3.x releases&lt;br /&gt;
* [[Download/criu/2.x]] for 2.x releases&lt;br /&gt;
* [[Download/criu/1.x]] for 1.x releases&lt;br /&gt;
* [[Download/criu/0.x]] for pre-1.x releases&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu&amp;diff=5586</id>
		<title>Download/criu</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu&amp;diff=5586"/>
		<updated>2025-01-15T23:21:25Z</updated>

		<summary type="html">&lt;p&gt;Kir: add noautonum to TOC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;noautonum&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Latest version ==&lt;br /&gt;
&lt;br /&gt;
{{:Download/criu/{{Last version}}}}&lt;br /&gt;
&lt;br /&gt;
== Old versions ==&lt;br /&gt;
&lt;br /&gt;
=== 3.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/3.x|3.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |3.19|3.18|3.17.1|3.17|3.16.1|3.16|3.15|3.14|3.13|3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0}}&lt;br /&gt;
&lt;br /&gt;
=== 2.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/2.x|2.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |2.12.1|2.12|2.11.1|2.11|2.10|2.9|2.8|2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0}}&lt;br /&gt;
&lt;br /&gt;
=== 1.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/1.x|1.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |1.8|1.7.2|1.7|1.6.1|1.6|1.5.2|1.5.1|1.5|1.4|1.3.1|1.3|1.3-rc2|1.3-rc1|1.2|1.1|1.1-rc2|1.1-rc1|1.0}}&lt;br /&gt;
&lt;br /&gt;
=== 0.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/0.x|0.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |0.8|0.7|0.6|0.5|0.4|0.3|0.2|0.1}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Changelogs]] to see all the changelogs on a single page.&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Changelogs&amp;diff=5585</id>
		<title>Changelogs</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Changelogs&amp;diff=5585"/>
		<updated>2025-01-15T23:10:04Z</updated>

		<summary type="html">&lt;p&gt;Kir: added missing 3.16.1 release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains all the changelogs for all the released CRIU versions. This is mostly useful for doing a search.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;noautonum&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{fe|Changelog|{{nln}}|4.0|3.19|3.18|3.17.1|3.17|3.16.1|3.16|3.15|3.14|3.13|3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0|2.12.1|2.12|2.11.1|2.11|2.10|2.9|2.8|2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0|1.8|1.7.2|1.7|1.6.1|1.6|1.5.2|1.5.1|1.5|1.4|1.3.1|1.3|1.3-rc2|1.3-rc1|1.2|1.1|1.1-rc2|1.1-rc1|1.0|0.8|0.7|0.6|0.5|0.4|0.3|0.2|0.1}}&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu/3.x&amp;diff=5584</id>
		<title>Download/criu/3.x</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu/3.x&amp;diff=5584"/>
		<updated>2025-01-15T23:06:58Z</updated>

		<summary type="html">&lt;p&gt;Kir: ffix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists older (3.x) CRIU releases. For latest release, see [[Download/criu]].&lt;br /&gt;
&lt;br /&gt;
With 3.x, we've finally split [[Compel]] from the rest of the CRIU and also added support for 32-bit tasks on x86-64 platform.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;noautonum&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{fe|Changelog|{{nln}}|3.19|3.18|3.17.1|3.17|3.16.1|3.16|3.15|3.14|3.13|3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Download/criu]] for the latest release and archives&lt;br /&gt;
* [[Download/criu/2.x]] for 2.x releases&lt;br /&gt;
* [[Download/criu/1.x]] for 1.x releases&lt;br /&gt;
* [[Download/criu/0.x]] for pre-1.x releases&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu/3.x&amp;diff=5583</id>
		<title>Download/criu/3.x</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu/3.x&amp;diff=5583"/>
		<updated>2025-01-15T23:06:33Z</updated>

		<summary type="html">&lt;p&gt;Kir: Add missing 3.x releases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists older (3.x) CRIU releases. For latest release, see [[Download/criu]].&lt;br /&gt;
&lt;br /&gt;
With 3.x, we've finally split [[Compel]] from the rest of the CRIU and also added support for 32-bit tasks on x86-64 platform.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;noautonum&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{fe|Changelog|{{nln}}|3.19|3.18|3.17.1|3.17|3.16.1|3.16|3.15|3.14|3.13|3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Download/criu]] for the latest release and archives&lt;br /&gt;
* [[Download/criu/2.x]] for 2.x releases&lt;br /&gt;
* [[Download/criu/1.x]] for 1.x releases&lt;br /&gt;
* [[Download/criu/0.x]] for pre-1.x releases&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu&amp;diff=5582</id>
		<title>Download/criu</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu&amp;diff=5582"/>
		<updated>2025-01-15T23:05:14Z</updated>

		<summary type="html">&lt;p&gt;Kir: /* 3.x */ added all missing 3.x releases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Latest version ==&lt;br /&gt;
&lt;br /&gt;
{{:Download/criu/{{Last version}}}}&lt;br /&gt;
&lt;br /&gt;
== Old versions ==&lt;br /&gt;
&lt;br /&gt;
=== 3.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/3.x|3.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |3.19|3.18|3.17.1|3.17|3.16.1|3.16|3.15|3.14|3.13|3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0}}&lt;br /&gt;
&lt;br /&gt;
=== 2.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/2.x|2.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |2.12.1|2.12|2.11.1|2.11|2.10|2.9|2.8|2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0}}&lt;br /&gt;
&lt;br /&gt;
=== 1.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/1.x|1.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |1.8|1.7.2|1.7|1.6.1|1.6|1.5.2|1.5.1|1.5|1.4|1.3.1|1.3|1.3-rc2|1.3-rc1|1.2|1.1|1.1-rc2|1.1-rc1|1.0}}&lt;br /&gt;
&lt;br /&gt;
=== 0.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/0.x|0.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |0.8|0.7|0.6|0.5|0.4|0.3|0.2|0.1}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Changelogs]] to see all the changelogs on a single page.&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu/3.18&amp;diff=5428</id>
		<title>Download/criu/3.18</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu/3.18&amp;diff=5428"/>
		<updated>2023-10-19T22:24:49Z</updated>

		<summary type="html">&lt;p&gt;Kir: rm extra vertical whitespace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
      **** FOR STEPS NEEDED TO MAKE A RELEASE, SEE https://criu.org/Releasing&lt;br /&gt;
      Use {{Bug|123}} to link to a github issue&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Image:3.18.jpg|400px|right]]&lt;br /&gt;
{{Release|3.18}}&lt;br /&gt;
&lt;br /&gt;
=== New features ===&lt;br /&gt;
* Allow CRIU to be used as non-root&lt;br /&gt;
* Add SIGTSTP support&lt;br /&gt;
* Add opt to skip file r/w/x check on restore&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* Many fixes here and there&lt;br /&gt;
&lt;br /&gt;
=== Improvements ===&lt;br /&gt;
* cgroup2: Dump cgroup controllers of every threads in a process&lt;br /&gt;
* save IP_FREEBIND option for SOCK_RAW sockets also&lt;br /&gt;
* support IP_PKTINFO and IPV6_RECVPKTINFO options&lt;br /&gt;
* Implement hw breakpoint for arm64 platform&lt;br /&gt;
* Set only used XFEATURE_* in xstate_bv&lt;br /&gt;
* Checkpoint and restore some global properties&lt;br /&gt;
* A checkpoint optimization for highly sparse ghost files (--ghost-fiemap)&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Releasing&amp;diff=5403</id>
		<title>Releasing</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Releasing&amp;diff=5403"/>
		<updated>2023-04-19T16:08:26Z</updated>

		<summary type="html">&lt;p&gt;Kir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a reminder of steps needed to roll out a new release.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
* Fix &amp;lt;code&amp;gt;Makefile.versions&amp;lt;/code&amp;gt;&lt;br /&gt;
* Commit: &amp;lt;code&amp;gt;git commit -m &amp;quot;criu: Version $version&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Merge it like any other criu changes (create a github pr, get it approved, etc)&lt;br /&gt;
* Tag: &amp;lt;code&amp;gt;git tag -a v$version -m '$summary'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Push: &amp;lt;code&amp;gt;git push origin v$version&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wiki ==&lt;br /&gt;
&lt;br /&gt;
* Make sure ''previous version'' is listed in [[Releases#Old versions]]&lt;br /&gt;
* Add release metadata:&lt;br /&gt;
** name to [[Template:Codename]]&lt;br /&gt;
** date to [[Template:Release date]]&lt;br /&gt;
* Create [[Download/criu/VERSION]]&lt;br /&gt;
* Bump [[Template:Last version]]&lt;br /&gt;
* Add new version to [[Changelogs]]&lt;br /&gt;
* Fixup [[Release schedule]]&lt;br /&gt;
** remove new version from [[Release schedule#Future releases]]&lt;br /&gt;
** add previous version to [[Release schedule#Past releases]]&lt;br /&gt;
&lt;br /&gt;
== Announces ==&lt;br /&gt;
&lt;br /&gt;
* Send an announcement to the criu mailing list.&lt;br /&gt;
&lt;br /&gt;
[[Category: development]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Codename&amp;diff=5298</id>
		<title>Template:Codename</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Codename&amp;diff=5298"/>
		<updated>2022-07-12T00:22:59Z</updated>

		<summary type="html">&lt;p&gt;Kir: added 3.17.1 codename (same as 3.17)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch: v{{{1}}}&lt;br /&gt;
 | v2.1  = Steel Lapwing&lt;br /&gt;
 | v2.2  = Carbon Nightingale&lt;br /&gt;
 | v2.3  = Wooden Duck&lt;br /&gt;
 | v2.4  = Marble Lark&lt;br /&gt;
 | v2.5  = Concrete Oriole&lt;br /&gt;
 | v2.6  = Paper Crane&lt;br /&gt;
 | v2.7  = Rubber Owl&lt;br /&gt;
 | v2.8  = Bronze Siskin&lt;br /&gt;
 | v2.9  = Silk Tit&lt;br /&gt;
 | v2.10 = Brass Waxwing&lt;br /&gt;
 | v2.11 = Acrylic Bullfinch&lt;br /&gt;
 | v2.12 = Vulcanite Rook&lt;br /&gt;
 | v3.0 = Basalt Wagtail&lt;br /&gt;
 | v3.1 = Graphene Swift&lt;br /&gt;
 | v3.2 = Tin Hoopoe&lt;br /&gt;
 | v3.3 = Crystal Pelican&lt;br /&gt;
 | v3.4 = Cobalt Swan&lt;br /&gt;
 | v3.5 = Clay Jay&lt;br /&gt;
 | v3.6 = Alabaster Finch&lt;br /&gt;
 | v3.7 = Vinyl Magpie&lt;br /&gt;
 | v3.8 = Snow Bunting&lt;br /&gt;
 | v3.8.1 = Snow Bunting&lt;br /&gt;
 | v3.9 = Sand Martin&lt;br /&gt;
 | v3.10 = Granite Eagle&lt;br /&gt;
 | v3.11 = Glass Flamingo&lt;br /&gt;
 | v3.12 = Ice Penguin&lt;br /&gt;
 | v3.13 = Silicon Willet&lt;br /&gt;
 | v3.14 = Platinum Peacock&lt;br /&gt;
 | v3.15 = Titanium Falcon&lt;br /&gt;
 | v3.16 = Petrified Puffin&lt;br /&gt;
 | v3.16.1 = Petrified Puffin&lt;br /&gt;
 | v3.17 = Radiant Redstart&lt;br /&gt;
 | v3.17.1 = Radiant Redstart&lt;br /&gt;
 | &amp;lt;!-- no codename --&amp;gt;&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to get the codename of a specified release. If there is no codename, empty string is produced.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|VERSION}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Markup&lt;br /&gt;
 ! Result&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|3.3}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|3.3}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|2.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|2.1}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|2.0}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|2.0}}&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Release schedule]] for future codenames&lt;br /&gt;
* [[Template:Release date]]&lt;br /&gt;
* [[Template:criu]]&lt;br /&gt;
* [[Template:Release]]&lt;br /&gt;
* [[Template:Latest release]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Release_date&amp;diff=5297</id>
		<title>Template:Release date</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Release_date&amp;diff=5297"/>
		<updated>2022-07-12T00:18:39Z</updated>

		<summary type="html">&lt;p&gt;Kir: added v to newest entries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch: v{{{1}}}&lt;br /&gt;
 | v3.17.1   = 23 Jun 2022&lt;br /&gt;
 | v3.17     =  5 May 2022&lt;br /&gt;
 | v3.16.1  = 14 Oct 2021&lt;br /&gt;
 | v3.16    = 22 Sep 2021&lt;br /&gt;
 | v3.15    = 03 Nov 2020&lt;br /&gt;
 | v3.14    = 29 Apr 2020&lt;br /&gt;
 | v3.13    = 11 Sep 2019&lt;br /&gt;
 | v3.12    = 25 Apr 2019&lt;br /&gt;
 | v3.11    = 06 Nov 2018&lt;br /&gt;
 | v3.10    = 10 Jul 2018&lt;br /&gt;
 | v3.9     = 21 May 2018&lt;br /&gt;
 | v3.8.1   = 29 Mar 2018&lt;br /&gt;
 | v3.8     = 13 Mar 2018&lt;br /&gt;
 | v3.7     = 19 Dec 2017&lt;br /&gt;
 | v3.6     = 23 Oct 2017&lt;br /&gt;
 | v3.5     = 27 Sep 2017&lt;br /&gt;
 | v3.4     = 21 Aug 2017&lt;br /&gt;
 | v3.3     = 18 Jul 2017&lt;br /&gt;
 | v3.2.1   = 28 Jun 2017&lt;br /&gt;
 | v3.2     = 19 Jun 2017&lt;br /&gt;
 | v3.1     = 22 May 2017&lt;br /&gt;
 | v3.0     = 24 Apr 2017&lt;br /&gt;
 | v2.12.1  = 27 Mar 2017&lt;br /&gt;
 | v2.12    =  8 Mar 2017&lt;br /&gt;
 | v2.11.1  = 17 Feb 2017&lt;br /&gt;
 | v2.11    = 13 Feb 2017&lt;br /&gt;
 | v2.10    = 16 Jan 2017&lt;br /&gt;
 | v2.9     = 12 Dec 2016&lt;br /&gt;
 | v2.8     = 14 Nov 2016&lt;br /&gt;
 | v2.7     = 17 Oct 2016&lt;br /&gt;
 | v2.6     = 12 Sep 2016&lt;br /&gt;
 | v2.5     = 15 Aug 2016&lt;br /&gt;
 | v2.4     = 11 Jul 2016&lt;br /&gt;
 | v2.3     = 14 Jun 2016&lt;br /&gt;
 | v2.2     = 16 May 2016&lt;br /&gt;
 | v2.1     = 11 Apr 2016&lt;br /&gt;
 | v2.0     =  7 Mar 2016&lt;br /&gt;
 | v1.8     =  7 Dec 2015&lt;br /&gt;
 | v1.7.2   = 28 Oct 2015&lt;br /&gt;
 | v1.7     =  7 Sep 2015&lt;br /&gt;
 | v1.6.1   = 12 Aug 2015&lt;br /&gt;
 | v1.6     =  1 Jun 2015&lt;br /&gt;
 | v1.5.2   = 28 Apr 2015&lt;br /&gt;
 | v1.5.1   = 31 Mar 2015&lt;br /&gt;
 | v1.5     =  2 Mar 2015&lt;br /&gt;
 | v1.4     =  1 Dec 2014&lt;br /&gt;
 | v1.3.1   = 12 Sep 2014&lt;br /&gt;
 | v1.3     =  1 Sep 2014&lt;br /&gt;
 | v1.3-rc2 = 18 Jun 2014&lt;br /&gt;
 | v1.3-rc1 = 25 Apr 2014&lt;br /&gt;
 | v1.2     = 26 Feb 2014&lt;br /&gt;
 | v1.1     = 28 Jan 2014&lt;br /&gt;
 | v1.1-rc2 = 20 Jan 2014&lt;br /&gt;
 | v1.1-rc1 = 30 Dec 2013&lt;br /&gt;
 | v1.0     = 25 Nov 2013&lt;br /&gt;
 | v0.8     = 18 Oct 2013&lt;br /&gt;
 | v0.7     =  3 Sep 2013&lt;br /&gt;
 | v0.6     =  1 Jul 2013&lt;br /&gt;
 | v0.5     = 30 Apr 2013&lt;br /&gt;
 | v0.4     = 20 Feb 2013&lt;br /&gt;
 | v0.3     = 11 Dec 2012&lt;br /&gt;
 | v0.2     = 20 Sep 2012&lt;br /&gt;
 | v0.1     = 23 Jul 2012&lt;br /&gt;
 | &amp;lt;!-- unknown release? return nothing --&amp;gt;&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to get the date of a specified release.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Release date|VERSION}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Markup&lt;br /&gt;
 ! Result&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Release date|2.10}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Release date|2.10}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Release date|2.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Release date|2.1}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Release date|1.3-rc1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Release date|1.3-rc1}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Release date|0.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Release date|0.1}}&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Template:Codename]]&lt;br /&gt;
* [[Template:Release]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Mount-v2&amp;diff=5273</id>
		<title>Mount-v2</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Mount-v2&amp;diff=5273"/>
		<updated>2022-04-27T05:04:25Z</updated>

		<summary type="html">&lt;p&gt;Kir: /* Links */ make a list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mount-v2 CRIU algorithm&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
After we've merged MOVE_MOUNT_SET_GROUP feature to mainstream linux v5.15 [https://github.com/torvalds/linux/commit/9ffb14ef61bab83fa818736bf3e7e6b6e182e8e2 torvalds/linux@9ffb14e] now we can use it to restore sharing groups of mounts without the need to care about inheriting those groups when create mounts, we can just set sharing groups at later stage and before that construct mount trees with private mounts.&lt;br /&gt;
&lt;br /&gt;
Restoring propagation right with conservative approach of both creating mounts and inheriting propagation groups looks like mission impossible task for us due to many problems:&lt;br /&gt;
&lt;br /&gt;
* Criu knows nothing about the initial history or order of mount tree creation;&lt;br /&gt;
* Propagation can create tons of mounts;&lt;br /&gt;
* Propagation may change parent mounts for existing mount tree;&lt;br /&gt;
* &amp;quot;Mount trap&amp;quot; - propagation may cover initial mount;&lt;br /&gt;
* &amp;quot;Non-uniform&amp;quot; propagation - there are different tricks with mount order and temporary children-&amp;quot;lock&amp;quot; mounts, which create mount trees which can't be restored without those tricks;&lt;br /&gt;
* &amp;quot;Cross-namespace&amp;quot; sharing groups creation need to be ordered with mount namespace creation right;&lt;br /&gt;
* Sharing groups vs mount tree order inversion can be very complex to restore and require multiple auxiliary. (see example below)&lt;br /&gt;
&lt;br /&gt;
See my talks about it on Linux Plumbers Conference:&lt;br /&gt;
* [https://www.linuxplumbersconf.org/event/7/contributions/640/ CRIU mounts migration: problems and solutions]&lt;br /&gt;
* [https://linuxplumbersconf.org/event/11/contributions/923/ Mount-v2 CRIU migration engine: status update]&lt;br /&gt;
&lt;br /&gt;
And here is the example of order inversion where multiple temporary mounts needed to achieve the result:&lt;br /&gt;
[[File:Mounts-inverse-order-example.gif|none|link=|Mounts-inverse-order-example.gif]]&lt;br /&gt;
&lt;br /&gt;
== Mount-v2 description ==&lt;br /&gt;
&lt;br /&gt;
New mount-v2 algorithm is integrated deeply in the original one, so that dumping of mounts is done exactly the same for original mount engine and new one. So mount-v2 series has preparatory steps related to bindmount detection, external mounts detection and helper mounts handling to make the original mount code more robust, to make it easier to reuse it in mount-v2.&lt;br /&gt;
&lt;br /&gt;
==== Plain mountpoints ====&lt;br /&gt;
&lt;br /&gt;
One of main differences of mount-v2 comparing to original is that mounts are initially created &amp;quot;plain&amp;quot;, for instance if we had '''MOUNT''' with '''mnt_id=1000''' and '''ns_mountpoint=&amp;quot;/mount/point/path&amp;quot;''', original mount engine would originally mount this '''MOUNT''' in the mount tree to '''&amp;lt;criu_root_yard&amp;gt;/&amp;lt;mntns&amp;gt;/mount/point/path''' so that if this mount had '''PARENT''' mount with '''mnt_id=999''' and '''ns_mountpoint=&amp;quot;/mount/point&amp;quot;''' corresponding mount for '''PARENT''' would be created in '''&amp;lt;criu_root_yard&amp;gt;/&amp;lt;mntns&amp;gt;/mount/point''' thus restoring parent-child relationship between them initially. For mount-v2 '''MOUNT''' would be first mounted to '''&amp;lt;criu_root_yard&amp;gt;/mnt-1000''' and '''PARENT''' would be mounted to '''&amp;lt;criu_root_yard&amp;gt;/mnt-999''' so that on the first stage we only create mounts and then on separate second stage handle the tree assembling separately. This way we can have useful heuristics like on the second stage we can create overmounts after mounts they overmount, and on the  first stage we can create external mounts before their bindmounts and these two do not clinch with each other.&lt;br /&gt;
&lt;br /&gt;
But it is not so simple actually because we do not want to rewrite all the code for instance for restoring mount content or restoring ghost and remap files, which used mountpoint paths in &amp;quot;tree&amp;quot; format. So in all places where it does not matter (where we do not access &amp;lt;criu_root_yard&amp;gt;/&amp;lt;mntns&amp;gt;/... paths) we switched from using mount_info-&amp;gt;mountpoint to mount_info-&amp;gt;ns_mountpoint and in all places where we actually needed &amp;quot;tree&amp;quot; format paths we replace them with service_mountpoint() helper which would return &amp;quot;tree&amp;quot; paths for original mount engine and &amp;quot;plain&amp;quot; paths for mount-v2. This way we can safely switch from one to another.&lt;br /&gt;
&lt;br /&gt;
==== Resolving sharing groups ====&lt;br /&gt;
&lt;br /&gt;
Just after reading mounts from images in read_mnt_ns_img() when mount-v2 is enabled we have an additional step to collect sharing group information from mounts and turn it to sharing groups forest graph (resolve_shared_mounts_v2). First, we just walk over all mounts and create sharing group for each mount with unique shared_id + master_id pair, also we sew all mounts to corresponding sharing group with same id pair. Second, we walk over all sharing groups which has non-zero master_id and lookup the corresponding parent sharing groups and connect them with a tree.&lt;br /&gt;
&lt;br /&gt;
There is also a case when master_id is non-zero but there is no corresponding parent sharing group, this means that outside of dumped container there is mount with matching shared_id - external slavery detected. For this case we just collect sibling sharing groups in list with empty parent link. Also we detect source path from which the master_id would be inherited either from some mountpoint-external mount or from root container mount.&lt;br /&gt;
&lt;br /&gt;
==== Actual restore of mounts ====&lt;br /&gt;
&lt;br /&gt;
Actual restore of mounts in original mount engine starts with prepare_mnt_ns() function, when mount-v2 is enabled we pass controll from it to prepare_mnt_ns_v2() instead. It consists of several stages:&lt;br /&gt;
&lt;br /&gt;
1) We pre-create mount namespaces for each restored mount namespace in pre_create_mount_namespaces(). These namespaces appear almost empty: they contain tmpfs as their root, they have root yard path created in it with another tmpfs mounted in it, and&amp;quot;namespace&amp;quot; path for assembling tree of mounts in it created in corresponding subdirectory of root yard mount. Surely we also save nsfs fds to each mount namespace to be able to reenter them later.&lt;br /&gt;
&lt;br /&gt;
2) In populate_mnt_ns_v2() we reuse mnt_tree_for_each() walk over mount tree from original mount engine and so we walk mounts in tree order with addition of temporary skipping mounts and their descendants with can_mount_now_v2() in case they depend from other mounts, restarting the walk for them later. The can_mount_now_v2() is basically skipping mounts which should be restored as bindmounts but their source is not ready yet, this is true for bindmounts of root, external or plugin mounts or non-fsroot mounts.&lt;br /&gt;
&lt;br /&gt;
3) In the mentioned walk over mounts forest in do_mount_one_v2() we determine if the newly created mount is directory one or a file one in detect_is_dir(), we just open its mountpoint path relative to parent &amp;quot;plain&amp;quot; mountpoint and do stat. That's why it is important to use mnt_tree_for_each() as it insures that parent is already &amp;quot;plain&amp;quot; mounted.&lt;br /&gt;
&lt;br /&gt;
4) In the mentioned walk over mounts forest in do_mount_one_v2() we create &amp;quot;plain&amp;quot; mountpoint for a new mount, empty file or directory based on the previous step.&lt;br /&gt;
&lt;br /&gt;
5) In the mentioned walk over mounts forest in do_mount_one_v2() we actually create new mount, either we create completely new mount or device-external in do_new_mount_v2() if it's supported, or bind container root mount in do_mount_root_v2() from the still visible host mount tree, or bind mountpoint-external mount in do_bind_mount_v2() and similarly bind any mount for which superblock is already created by other mount beforehand and we can just bind it in do_bind_mount_v2(). These functions act similar to ones in original mount engine but simplified as they don't need to care about inheriting sharing groups.&lt;br /&gt;
&lt;br /&gt;
6) The do_bind_mount_v2() is improved to do bindmount via open_tree() + move_mount() with flags allowing not to traverse symlinks or autofs mounts.&lt;br /&gt;
&lt;br /&gt;
7) Also we cross-namespace bindmount the newly created mount to restored mount namespace to the same &amp;quot;plain&amp;quot; mountpoint in do_mount_in_right_mntns(). So that we initially have a mount which would be visible after restore, this would be required in future to be able to restore bindmounted unix sockets on the right mount.&lt;br /&gt;
&lt;br /&gt;
8) Now after the walk we don't plan to do bindmounts anymore so we set unbindable flags on mounts.&lt;br /&gt;
&lt;br /&gt;
9) Next we assemble mount trees in each restored mount namespace in assemble_mount_namespaces() by again reusing move_mount_to_tree() to have tree order of moving mounts into proper places in mount tree. Also we open fds on the mountpoint: one mp_fd_id before moving and another mnt_fd_id after, so that we can access files on each mount later from final mntns via those fds.&lt;br /&gt;
&lt;br /&gt;
10) Finally we do restore sharing groups on the assembled mount forest in restore_mount_sharing_options(). It walks each root sharing group and their descendants with dfs tree walk. It creates sharing for the first mount in the sharing group and then sets the same sharing on all other mounts in this group.&lt;br /&gt;
&lt;br /&gt;
Sharing creation for first mount is two step:&lt;br /&gt;
&lt;br /&gt;
a) If mount has master_id we either copy shared_id from parent sharing group or from external source and then make mount slave thus converting it to right master_id.&lt;br /&gt;
b) Next if mount has shared_id we just make us shared, creating right shared_id.&lt;br /&gt;
&lt;br /&gt;
We need to use userns_call() for MOVE_MOUNT_SET_GROUP to have all right permissions for copying sharing (move_mount_set_group()). Also we need to resolve external paths given by user to their actual mountpoint, we do so with openat2(RESOLVE_NO_XDEV) in resolve_mountpoint, this also only works from userns_call().&lt;br /&gt;
&lt;br /&gt;
11) We remove sources of deleted mounts making them actually deleted (from &amp;quot;service&amp;quot; mount namespace), as moving deleted mounts is not allowed and just to simplify things we do it at the last step.&lt;br /&gt;
&lt;br /&gt;
==== Links ====&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Virtuozzo&amp;quot; (original) version (using non-mainstream kernel interface): [[Mounts-v2-Virtuozzo|Mounts-v2-Virtuozzo]] It actually has cool features we don't have in mainstream yet, for instance - nested pidns proc handling, this feature requires nested pidns support beforehand.&lt;br /&gt;
&lt;br /&gt;
* MOVE_MOUNT_SET_GROUP kernel feature: [https://github.com/torvalds/linux/commit/9ffb14ef61bab83fa818736bf3e7e6b6e182e8e2 torvalds/linux@9ffb14e]&lt;br /&gt;
&lt;br /&gt;
* Mount-v2 PR to criu: [https://github.com/checkpoint-restore/criu/pull/1721 #1721]&lt;br /&gt;
&lt;br /&gt;
[[Category: Under the hood]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Codename&amp;diff=5272</id>
		<title>Template:Codename</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Codename&amp;diff=5272"/>
		<updated>2022-04-27T04:59:08Z</updated>

		<summary type="html">&lt;p&gt;Kir: Add a name for 3.8.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch: v{{{1}}}&lt;br /&gt;
 | v2.1  = Steel Lapwing&lt;br /&gt;
 | v2.2  = Carbon Nightingale&lt;br /&gt;
 | v2.3  = Wooden Duck&lt;br /&gt;
 | v2.4  = Marble Lark&lt;br /&gt;
 | v2.5  = Concrete Oriole&lt;br /&gt;
 | v2.6  = Paper Crane&lt;br /&gt;
 | v2.7  = Rubber Owl&lt;br /&gt;
 | v2.8  = Bronze Siskin&lt;br /&gt;
 | v2.9  = Silk Tit&lt;br /&gt;
 | v2.10 = Brass Waxwing&lt;br /&gt;
 | v2.11 = Acrylic Bullfinch&lt;br /&gt;
 | v2.12 = Vulcanite Rook&lt;br /&gt;
 | v3.0 = Basalt Wagtail&lt;br /&gt;
 | v3.1 = Graphene Swift&lt;br /&gt;
 | v3.2 = Tin Hoopoe&lt;br /&gt;
 | v3.3 = Crystal Pelican&lt;br /&gt;
 | v3.4 = Cobalt Swan&lt;br /&gt;
 | v3.5 = Clay Jay&lt;br /&gt;
 | v3.6 = Alabaster Finch&lt;br /&gt;
 | v3.7 = Vinyl Magpie&lt;br /&gt;
 | v3.8 = Snow Bunting&lt;br /&gt;
 | v3.8.1 = Snow Bunting&lt;br /&gt;
 | v3.9 = Sand Martin&lt;br /&gt;
 | v3.10 = Granite Eagle&lt;br /&gt;
 | v3.11 = Glass Flamingo&lt;br /&gt;
 | v3.12 = Ice Penguin&lt;br /&gt;
 | v3.13 = Silicon Willet&lt;br /&gt;
 | v3.14 = Platinum Peacock&lt;br /&gt;
 | v3.15 = Titanium Falcon&lt;br /&gt;
 | v3.16 = Petrified Puffin&lt;br /&gt;
 | v3.16.1 = Petrified Puffin&lt;br /&gt;
 | v3.17 = Radiant Redstart&lt;br /&gt;
 | &amp;lt;!-- no codename --&amp;gt;&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to get the codename of a specified release. If there is no codename, empty string is produced.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|VERSION}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Markup&lt;br /&gt;
 ! Result&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|3.3}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|3.3}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|2.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|2.1}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|2.0}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|2.0}}&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Release schedule]] for future codenames&lt;br /&gt;
* [[Template:Release date]]&lt;br /&gt;
* [[Template:criu]]&lt;br /&gt;
* [[Template:Release]]&lt;br /&gt;
* [[Template:Latest release]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu&amp;diff=5271</id>
		<title>Download/criu</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu&amp;diff=5271"/>
		<updated>2022-04-27T04:57:31Z</updated>

		<summary type="html">&lt;p&gt;Kir: added 3.16 to past releases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Latest version ==&lt;br /&gt;
&lt;br /&gt;
{{:Download/criu/{{Last version}}}}&lt;br /&gt;
&lt;br /&gt;
== Old versions ==&lt;br /&gt;
&lt;br /&gt;
=== 3.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/3.x|3.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |3.16|3.15|3.14|3.13|3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0}}&lt;br /&gt;
&lt;br /&gt;
=== 2.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/2.x|2.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |2.12.1|2.12|2.11.1|2.11|2.10|2.9|2.8|2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0}}&lt;br /&gt;
&lt;br /&gt;
=== 1.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/1.x|1.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |1.8|1.7.2|1.7|1.6.1|1.6|1.5.2|1.5.1|1.5|1.4|1.3.1|1.3|1.3-rc2|1.3-rc1|1.2|1.1|1.1-rc2|1.1-rc1|1.0}}&lt;br /&gt;
&lt;br /&gt;
=== 0.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/0.x|0.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |0.8|0.7|0.6|0.5|0.4|0.3|0.2|0.1}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Changelogs]] to see all the changelogs on a single page.&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Dl&amp;diff=5199</id>
		<title>Template:Dl</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Dl&amp;diff=5199"/>
		<updated>2021-09-23T16:41:54Z</updated>

		<summary type="html">&lt;p&gt;Kir: fixed link to criu 2.x&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#ifexpr: {{#sub:{{{1}}}|0|1}} &amp;gt;= 3 | [[github:checkpoint-restore/criu/archive/v{{{1}}}/criu-{{{1}}}.tar.gz | criu-{{{1}}}.tar.gz]] | [[dl:criu/criu-{{{1}}}.tar.bz2|criu-{{{1}}}.tar.bz2]] }}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces a download link for a given version.&lt;br /&gt;
&lt;br /&gt;
* for releases &amp;lt; 3, it links to download.openvz.org (interwiki &amp;lt;code&amp;gt;dl:&amp;lt;/code&amp;gt;), and uses tar.bz2.&lt;br /&gt;
* for releases &amp;gt;= 3, it links to github.org (interwiki &amp;lt;code&amp;gt;github:&amp;lt;/code&amp;gt;), and uses tar.gz.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wiki code !! Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl|2.3}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl|2.3}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl|3.14}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl|3.14}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Dl&amp;diff=5198</id>
		<title>Template:Dl</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Dl&amp;diff=5198"/>
		<updated>2021-09-23T16:40:54Z</updated>

		<summary type="html">&lt;p&gt;Kir: fixed to use github.com/checkpoint-restore/criu/archive/vXXX/criu-XXX.tar.gz instead of codeload. This fixes the file name when using wget.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#ifexpr: {{#sub:{{{1}}}|0|1}} &amp;gt;= 3 | [[github:checkpoint-restore/criu/archive/v{{{1}}}/criu-{{{1}}}.tar.gz | criu-{{{1}}}.tar.gz]] | [[dl:criu/criu-{{{1}}}.tar.bz2|criu-{{{1}}}.tar.bz2]] }}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces a download link for a given version.&lt;br /&gt;
&lt;br /&gt;
* for releases &amp;lt; 3, it links to download.openvz.org (interwiki &amp;lt;code&amp;gt;dl:&amp;lt;/code&amp;gt;), and uses tar.bz2.&lt;br /&gt;
* for releases &amp;gt;= 3, it links to github.org (interwiki &amp;lt;code&amp;gt;github:&amp;lt;/code&amp;gt;), and uses tar.gz.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wiki code !! Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl|2.3.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl|2.3.1}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl|3.14}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl|3.14}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Git_release&amp;diff=5195</id>
		<title>Template:Git release</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Git_release&amp;diff=5195"/>
		<updated>2021-09-22T22:02:17Z</updated>

		<summary type="html">&lt;p&gt;Kir: fix double slash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[github:checkpoint-restore/criu/releases/tag/{{{1}}}|{{{1}}}]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Dl&amp;diff=5194</id>
		<title>Template:Dl</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Dl&amp;diff=5194"/>
		<updated>2021-09-22T21:59:16Z</updated>

		<summary type="html">&lt;p&gt;Kir: use codeload.github.com for 3.x; add documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#ifexpr: {{#sub:{{{1}}}|0|1}} &amp;gt;= 3 | [[gh-codeload:checkpoint-restore/criu/tar.gz/refs/tags/v{{{1}}} | criu-{{{1}}}.tar.gz]] | [[dl:criu/criu-{{{1}}}.tar.bz2|criu-{{{1}}}.tar.bz2]] }}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces a download link for a given version.&lt;br /&gt;
&lt;br /&gt;
* for releases &amp;lt; 3, it links to download.openvz.org (interwiki &amp;lt;code&amp;gt;dl:&amp;lt;/code&amp;gt;), and uses tar.bz2.&lt;br /&gt;
* for releases &amp;gt;= 3, it links to codeload.github.org (interwiki &amp;lt;code&amp;gt;gh-codeload:&amp;lt;/code&amp;gt;), and uses tar.gz.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wiki code !! Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|2.3.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|2.3.1}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|3.14}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|3.14}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Dl2&amp;diff=5193</id>
		<title>Template:Dl2</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Dl2&amp;diff=5193"/>
		<updated>2021-09-22T21:58:23Z</updated>

		<summary type="html">&lt;p&gt;Kir: polish; improve docs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#ifexpr: {{#sub:{{{1}}}|0|1}} &amp;gt;= 3 | [[gh-codeload:checkpoint-restore/criu/tar.gz/refs/tags/v{{{1}}} | criu-{{{1}}}.tar.gz]] | [[dl:criu/criu-{{{1}}}.tar.bz2|criu-{{{1}}}.tar.bz2]] }}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces a download link for a given version.&lt;br /&gt;
&lt;br /&gt;
* for releases &amp;lt; 3, it links to download.openvz.org (interwiki &amp;lt;code&amp;gt;dl:&amp;lt;/code&amp;gt;), and uses tar.bz2.&lt;br /&gt;
* for releases &amp;gt;= 3, it links to codeload.github.org (interwiki &amp;lt;code&amp;gt;gh-codeload:&amp;lt;/code&amp;gt;), and uses tar.gz.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wiki code !! Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|2.3.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|2.3.1}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|3.14}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|3.14}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Dl2&amp;diff=5192</id>
		<title>Template:Dl2</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Dl2&amp;diff=5192"/>
		<updated>2021-09-22T21:55:08Z</updated>

		<summary type="html">&lt;p&gt;Kir: use interwiki prefix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifexpr: {{#sub:{{{1}}}|0|1}} &amp;gt;= 3 | [[gh-codeload:checkpoint-restore/criu/tar.gz/refs/tags/v{{{1}}} | criu-{{{1}}}.tar.gz]] | [[dl:criu/criu-{{{1}}}.tar.bz2|criu-{{{1}}}.tar.bz2]] }}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces a download link for a given version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wiki code !! Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|2.3.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|2.3.1}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|3.14}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|3.14}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Dl2&amp;diff=5191</id>
		<title>Template:Dl2</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Dl2&amp;diff=5191"/>
		<updated>2021-09-22T21:50:43Z</updated>

		<summary type="html">&lt;p&gt;Kir: fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifexpr: {{#sub:{{{1}}}|0|1}} &amp;gt;= 3 | [[https://codeload.github.com/checkpoint-restore/criu/tar.gz/refs/tags/v{{{1}}}{{|}}criu-{{{1}}}.tar.gz]] | [[dl:criu/criu-{{{1}}}.tar.bz2|criu-{{{1}}}.tar.bz2]] }}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces a download link for a given version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wiki code !! Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|2.3.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|2.3.1}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|3.14}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|3.14}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Dl2&amp;diff=5190</id>
		<title>Template:Dl2</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Dl2&amp;diff=5190"/>
		<updated>2021-09-22T21:48:50Z</updated>

		<summary type="html">&lt;p&gt;Kir: redirect 3.x downloads to github&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifexpr: {{#sub:{{{1}}}|0|1}} &amp;gt;= 3 | [[https://codeload.github.com/checkpoint-restore/criu/tar.gz/refs/tags/v{{{1}}}|criu-{{{1}}}.tar.gz]] | [[dl:criu/criu-{{{1}}}.tar.bz2|criu-{{{1}}}.tar.bz2]] }}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This produces a download link for a given version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wiki code !! Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|2.3.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|2.3.1}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Dl2|3.14}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Dl2|3.14}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=API_compliance&amp;diff=5170</id>
		<title>API compliance</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=API_compliance&amp;diff=5170"/>
		<updated>2021-08-08T15:42:10Z</updated>

		<summary type="html">&lt;p&gt;Kir: nit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page brings together 3 APIs we have&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! [[Usage|CLI]]&lt;br /&gt;
! [[RPC]]&lt;br /&gt;
! [[C_API|C library]]&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
| dump || CRIU_REQ_TYPE__DUMP || criu_dump ||&lt;br /&gt;
|-&lt;br /&gt;
| pre-dump || CRIU_REQ_TYPE__PRE_DUMP || criu_dump_iters ||&lt;br /&gt;
|-&lt;br /&gt;
| restore || CRIU_REQ_TYPE__RESTORE || criu_restore, criu_restore_child ||&lt;br /&gt;
|-&lt;br /&gt;
| show || || || Deprecated. The [[CRIT]] tool should be used instead&lt;br /&gt;
|-&lt;br /&gt;
| check || CRIU_REQ_TYPE__CHECK || criu_check ||&lt;br /&gt;
|-&lt;br /&gt;
| cpuinfo dump || CRIU_REQ_TYPE__CPUINFO_DUMP || ||&lt;br /&gt;
|-&lt;br /&gt;
| cpuinfo check || CRIU_REQ_TYPE__CPUINFO_CHECK || ||&lt;br /&gt;
|-&lt;br /&gt;
| exec || || ||&lt;br /&gt;
|-&lt;br /&gt;
| page-server || CRIU_REQ_TYPE__PAGE_SERVER || ||&lt;br /&gt;
|-&lt;br /&gt;
| service || || ||&lt;br /&gt;
|-&lt;br /&gt;
| dedup || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! [[Usage|CLI]]&lt;br /&gt;
! [[RPC]]&lt;br /&gt;
! [[C_API|C library]]&lt;br /&gt;
! comment&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;tree&amp;quot;			|| pid			|| criu_set_pid			||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;leave-stopped&amp;quot;	||			||				||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;leave-running&amp;quot;	|| leave_running	|| criu_set_leave_running	||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;restore-detached&amp;quot;	||			||				|| tasks always restore detached in RPC/lib&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;restore-sibling&amp;quot;      || rst_sibling          ||                              || For [[RPC]] -- in swrk mode only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;daemon&amp;quot;		||			||				|| only for page server in RPC/lib&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;images-dir&amp;quot;		|| images_dir_fd	|| criu_set_images_dir_fd	||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;work-dir&amp;quot;		|| work_dir_fd		|| criu_set_work_dir_fd		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;log-file&amp;quot;		|| log_file		|| criu_set_log_file		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;root&amp;quot;			|| root			|| criu_set_root		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;ext-unix-sk&amp;quot;		|| ext_unix_sk		|| criu_set_ext_unix_sk		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;tcp-established&amp;quot;	|| tcp_established	|| criu_set_tcp_established	||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;log-pid&amp;quot;		||			||				||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;evasive-devices&amp;quot;	|| evasive_devices	|| criu_set_evasive_devices	||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;veth-pair&amp;quot;		|| veths		|| criu_add_veth_pair		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;action-script&amp;quot;	|| notify_scripts	|| criu_set_notify_cb		|| see article about [[action scripts]]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;link-remap&amp;quot;		|| link_remap		|| criu_set_link_remap		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;shell-job&amp;quot;		|| shell_job		|| criu_set_shell_job		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;file-locks&amp;quot;		|| file_locks		|| criu_set_file_locks		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;page-server&amp;quot;		|| ps			||				||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;address&amp;quot;		|| ps.address		||				||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;port&amp;quot;			|| ps.port		||				||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;pidfile&amp;quot;		|| ps.pid		||				|| page-server pid returned for RPC&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;prev-images-dir&amp;quot;	|| parent_img		|| criu_set_parent_images	||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;ms&amp;quot;			||			||				|| &amp;quot;Check&amp;quot; only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;feature&amp;quot;              ||                      ||                              || &amp;quot;Check&amp;quot; only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;track-mem&amp;quot;		|| track_mem		|| criu_set_track_mem		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;auto-dedup&amp;quot;		|| auto_dedup		|| criu_set_auto_dedup		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;libdir&amp;quot;		||			||				|| not clear how to do it in RPC&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;cpu-cap&amp;quot;		|| cpu_cap		|| criu_set_cpu_cap		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;force-irmap&amp;quot;		|| force_irmap		|| criu_set_force_irmap		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;exec-cmd&amp;quot;		|| exec_cmd		|| criu_set_exec_cmd		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;manage-cgroups&amp;quot;       || manage_cgroups       || criu_set_manage_cgroups      ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;cgroup-root&amp;quot;          || cg_root              || criu_add_cg_root             ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;inherit-fd&amp;quot;           || inherit_fd           ||                              || For [[RPC]] -- in swrk mode only&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;skip-mnt&amp;quot;             ||                      ||                              ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;ext-mount-map&amp;quot;	|| ext_mnt/auto_ext_mnt	|| criu_add_ext_mount/criu_set_auto_ext_mount		||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;enable-fs&amp;quot;            ||                      ||                              ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;enable-external-sharing&amp;quot; || ext_sharing || criu_set_ext_sharing ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;enable-external-masters&amp;quot; || ext_masters || criu_set_ext_masters ||&lt;br /&gt;
|-&lt;br /&gt;
|               	|| pidfd_store_sk	|| criu_set_pidfd_store_sk	|| see [[Pidfd store]]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;network-lock&amp;quot;		|| network_lock		|| criu_set_network_lock	||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;help&amp;quot;			||			||				||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;version&amp;quot;		||			||				||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;pid&amp;quot;			||			||				|| obsoleted&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;namespaces&amp;quot;		||			||				|| obsoleted&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;close&amp;quot;		||			||				|| hidden and obsoleted&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;contents&amp;quot;		||			||				|| deprecated (for show)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;file&amp;quot;			||			||				|| deprecated (for show)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;fields&amp;quot;		||			||				|| deprecated (for show)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: API]]&lt;br /&gt;
[[Category: Outdated]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=CLI/opt/--network-lock&amp;diff=5169</id>
		<title>CLI/opt/--network-lock</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=CLI/opt/--network-lock&amp;diff=5169"/>
		<updated>2021-08-08T15:36:18Z</updated>

		<summary type="html">&lt;p&gt;Kir: use definition list; fix a link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Set the method to be used for network locking/unlocking. Locking is done to ensure that tcp packets are dropped between dump and restore. This is done to avoid the kernel sending RST when a packet arrives destined for the dumped process.&lt;br /&gt;
&lt;br /&gt;
Currently two methods are available:&lt;br /&gt;
;&amp;lt;b&amp;gt;iptables&amp;lt;/b&amp;gt;&lt;br /&gt;
: Use iptables rules to drop the packets. This is the default if 'method' is not specified.&lt;br /&gt;
;&amp;lt;b&amp;gt;nftables&amp;lt;/b&amp;gt;&lt;br /&gt;
: Use nftables rules to drop the packets.&lt;br /&gt;
&lt;br /&gt;
For more information: [[TCP connection#Checkpoint and restore TCP connection]]&lt;br /&gt;
&lt;br /&gt;
[[Category:CLI]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=TCP_connection&amp;diff=5168</id>
		<title>TCP connection</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=TCP_connection&amp;diff=5168"/>
		<updated>2021-08-08T15:31:35Z</updated>

		<summary type="html">&lt;p&gt;Kir: use template:opt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how we handle established TCP connections.&lt;br /&gt;
&lt;br /&gt;
== TCP repair mode in kernel ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;TCP_REPAIR&amp;lt;/code&amp;gt; socket option was added to the kernel 3.5 to help with C/R for TCP sockets.&lt;br /&gt;
&lt;br /&gt;
When this option is used, the socket is switched into a special mode, in which any action performed on it&lt;br /&gt;
does not result in anything defined by an appropriate protocol actions, but rather directly puts the socket&lt;br /&gt;
into the state that the socket is expected to be in at the end of a successfully finished operation.&lt;br /&gt;
&lt;br /&gt;
For example, calling &amp;lt;code&amp;gt;connect()&amp;lt;/code&amp;gt; on a repaired socket just changes its state to &amp;lt;code&amp;gt;ESTABLISHED&amp;lt;/code&amp;gt;,&lt;br /&gt;
with the peer address set as requested.&lt;br /&gt;
The &amp;lt;code&amp;gt;bind()&amp;lt;/code&amp;gt; call forcibly binds the socket to a given address (ignoring any potential conflicts).&lt;br /&gt;
The &amp;lt;code&amp;gt;close()&amp;lt;/code&amp;gt; call closes the socket without any transient &amp;lt;code&amp;gt;FIN_WAIT&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;TIME_WAIT&amp;lt;/code&amp;gt;/etc states,&lt;br /&gt;
socket is silently killed.&lt;br /&gt;
&lt;br /&gt;
=== Sequences ===&lt;br /&gt;
&lt;br /&gt;
To restore the connection properly, bind() and connect() is not enough. One also needs to restore the&lt;br /&gt;
TCP sequence numbers. To do so, the &amp;lt;code&amp;gt;TCP_REPAIR_QUEUE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TCP_QUEUE_SEQ&amp;lt;/code&amp;gt; options were introduced.&lt;br /&gt;
&lt;br /&gt;
The former one selects which queue (input or output) will be repaired and the latter gets/sets the sequence. Note&lt;br /&gt;
setting the sequence is only possible on CLOSE-d socket.&lt;br /&gt;
&lt;br /&gt;
=== Packets in queue ===&lt;br /&gt;
&lt;br /&gt;
When set the queue to repair as described above, one can call recv or send syscalls on a repaired socket. Both calls&lt;br /&gt;
result on peeking or poking data from/to the respective queue. This sounds funny, but yes, for repaired socket one&lt;br /&gt;
can receve the outgoing and send the incoming queues. Using the &amp;lt;code&amp;gt;MSG_PEEK&amp;lt;/code&amp;gt; flag for &amp;lt;code&amp;gt;recv()&amp;lt;/code&amp;gt; is required.&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
There are 4 options that are negotiated by the socket at the connecting stage. These are&lt;br /&gt;
&lt;br /&gt;
* mss_clamp -- the maximum size of the segment peer is ready to accept&lt;br /&gt;
* snd _scale -- the scale factor for a window&lt;br /&gt;
* sack -- whether selective acks are permitted or not&lt;br /&gt;
* tstamp -- whether timestamps on packets are supported&lt;br /&gt;
&lt;br /&gt;
All four can be read with &amp;lt;code&amp;gt;getsockopt()&amp;lt;/code&amp;gt; calls to a socket and in order to restore them the &amp;lt;code&amp;gt;TCP_REPAIR_OPTIONS&amp;lt;/code&amp;gt; sockoption is introduced.&lt;br /&gt;
&lt;br /&gt;
== Timestamp ==&lt;br /&gt;
&amp;quot;The sender's timestamp clock is used as a source of monotonic non-decreasing values to stamp the segments&amp;quot;(rfc7323). The Linux kernel uses the jiffies counter as the tcp timestamp.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#define tcp_time_stamp          ((__u32)(jiffies))&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We add the &amp;lt;code&amp;gt;TCP_TIMESTAMP&amp;lt;/code&amp;gt; options to be able to compensate a difference between jiffies counters, when a connection is migrated on another host. When a connection is dumped, criu calls &amp;lt;code&amp;gt;getsockopt(TCP_TIMESTAMP)&amp;lt;/code&amp;gt; to get a current timestamp, then on restore it calls &amp;lt;code&amp;gt;setsockopt(TCP_TIMESTAMP)&amp;lt;/code&amp;gt; to set this timestamp as a starting point.&lt;br /&gt;
&lt;br /&gt;
== Checkpoint and restore TCP connection ==&lt;br /&gt;
&lt;br /&gt;
With the above sockoptions dumping and restoring TCP connection becomes possible. The criu just reads the socket&lt;br /&gt;
state and restores it back letting the protocol resurrect the data sequence.&lt;br /&gt;
&lt;br /&gt;
One thing to note here — while the socket is closed between dump and restore the connection should be &amp;quot;locked&amp;quot;, i.e.&lt;br /&gt;
no packets from peer should enter the stack, otherwise the RST will be sent by a kernel. In order to do so a simple&lt;br /&gt;
netfilter rule is configured that drops all the packets from peer to a socket we're dealing with. This rule sits&lt;br /&gt;
in the host netfilter tables after the criu dump command finishes and it should be there when you issue the&lt;br /&gt;
criu restore one. The locking method can be specified using the {{opt|--network-lock}} option.&lt;br /&gt;
&lt;br /&gt;
Another thing to note is -- on restore there should be available the IP address, that was used by the connection.&lt;br /&gt;
This is automatically so if restore happens on the same box as dump. In case of hand-made live migration the&lt;br /&gt;
IP address should be copied too.&lt;br /&gt;
&lt;br /&gt;
That said, the command line option {{opt|--tcp-established}} should be used when calling criu to explicitly state, that the&lt;br /&gt;
caller is aware of this &amp;quot;transitional&amp;quot; state of the netfilter.&lt;br /&gt;
&lt;br /&gt;
In case the target process lives in NET namespace the connection locking happens the other way. Instead of&lt;br /&gt;
per-connection iptables rules the &amp;quot;network-lock&amp;quot;/&amp;quot;network-unlock&amp;quot; [[action scripts]] are called so that the user&lt;br /&gt;
could isolate the whole netns from network. Typically this is done by downing the respective veth pair end.&lt;br /&gt;
&lt;br /&gt;
== States ==&lt;br /&gt;
=== TCP_SYN_SENT ===&lt;br /&gt;
There is only one difference with TCP_ESTABLISHED, we have to restore a socket and disable the repair mode before calling &amp;lt;code&amp;gt;connect()&amp;lt;/code&amp;gt;. The kernel will send a one syn-sent packet with the same initial sequence number and sets the TCP_SYN_SENT state for the socket.&lt;br /&gt;
&lt;br /&gt;
=== Half-closed sockets ===&lt;br /&gt;
A socket is half-closed when it sent or received a fin packet. These sockets are in one for these states: TCP_FIN_WAIT1, TCP_FIN_WAIT2, TCP_CLOSING, TCP_LAST_ACL, TCP_CLOSE_WAIT. To restore these states, we restore a socket into the TCP_ESTABLISHED state and then we call shutfown(SHUT_WR), if a socket has sent a fin packet and we send a fake fin packet, if a socket has received it before. For example, if we want to restore the TCP_FIN_WAIT1 state, we have to call shutfown(SHUT_WR) and we can send a fake ack to the fin packet to restore the TCP_FIN_WAIT2 state.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Simple TCP pair]]&lt;br /&gt;
* [[TCP repair TODO]]&lt;br /&gt;
* [[CLI/opt/--tcp-close|Dropping the connection]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* http://lwn.net/Articles/495304/&lt;br /&gt;
&lt;br /&gt;
[[Category:Under the hood]]&lt;br /&gt;
[[Category:Sockets]]&lt;br /&gt;
[[Category: Editor help needed]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=CLI/opt/--lazy-pages&amp;diff=5158</id>
		<title>CLI/opt/--lazy-pages</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=CLI/opt/--lazy-pages&amp;diff=5158"/>
		<updated>2021-06-15T20:56:11Z</updated>

		<summary type="html">&lt;p&gt;Kir: fix a typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;--lazy-pages&amp;lt;/code&amp;gt; option may be used with &amp;lt;code&amp;gt;dump&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;restore&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;page-server&amp;lt;/code&amp;gt; actions.&lt;br /&gt;
Specifying this option enables functionality necessary for [[Userfaultfd|lazy memory restore]] and [[Lazy migration]].&lt;br /&gt;
&lt;br /&gt;
The actual meaning of the &amp;lt;code&amp;gt;--lazy-pages&amp;lt;/code&amp;gt; option depends what &amp;lt;code&amp;gt;criu&amp;lt;/code&amp;gt; actions has been called with that option.&lt;br /&gt;
&lt;br /&gt;
== Dump ==&lt;br /&gt;
Perform the dump procedure without writing memory pages into the image files and prepare to service page requests over the network.&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;dump&amp;lt;/code&amp;gt; runs in this mode it presumes that [[CLI/cmd/lazy-pages|&amp;lt;code&amp;gt;lazy-pages&amp;lt;/code&amp;gt;]] daemon will connect to it and fetch memory pages in order to lazily inject them into the restored process address space.&lt;br /&gt;
&lt;br /&gt;
This option is intended for [[Lazy migration|post-copy (lazy) migration]] and should be used in conjunction with &amp;lt;code&amp;gt;restore&amp;lt;/code&amp;gt; with appropriate options.&lt;br /&gt;
&lt;br /&gt;
== Restore ==&lt;br /&gt;
Restore the processes without filling out the entire memory contents.&lt;br /&gt;
&lt;br /&gt;
When this option is used, &amp;lt;code&amp;gt;restore&amp;lt;/code&amp;gt; sets up the infrastructure required to fill memory pages either on demand when the process accesses them or in the background without stopping the restored process.&lt;br /&gt;
&lt;br /&gt;
This option requires running [[CLI/cmd/lazy-pages|&amp;lt;code&amp;gt;lazy-pages&amp;lt;/code&amp;gt;]] daemon.&lt;br /&gt;
&lt;br /&gt;
== Page server ==&lt;br /&gt;
Serve local memory dump to a remote [[CLI/cmd/lazy-pages|&amp;lt;code&amp;gt;lazy-pages&amp;lt;/code&amp;gt;]] daemon.&lt;br /&gt;
&lt;br /&gt;
In this mode the &amp;lt;code&amp;gt;page-server&amp;lt;/code&amp;gt; reads local memory dump and allows the remote &amp;lt;code&amp;gt;lazy-pages&amp;lt;/code&amp;gt; daemon to request memory pages in random order.&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Packages&amp;diff=5151</id>
		<title>Packages</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Packages&amp;diff=5151"/>
		<updated>2021-03-24T18:33:38Z</updated>

		<summary type="html">&lt;p&gt;Kir: rm pkgs.org link as it's not working (and when you do a manual search not a lot of distros are found -- repology works better)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page summarizes our knowledge about CRIU packages in various Linux distributions.&lt;br /&gt;
&lt;br /&gt;
== Specific distributions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== AltLinux ===&lt;br /&gt;
* http://packages.altlinux.org/crtools&lt;br /&gt;
&lt;br /&gt;
=== Arch ===&lt;br /&gt;
* https://aur.archlinux.org/packages/criu/&lt;br /&gt;
&lt;br /&gt;
As of '''2018-09-12''' the kernel package '''linux''' has CONFIG_CHECKPOINT_RESTORE enabled. The kernel package '''linux-lts''' has CONFIG_CHECKPOINT_RESTORE '''disabled'''.&lt;br /&gt;
&lt;br /&gt;
=== CentOS ===&lt;br /&gt;
* https://git.centos.org/rpms/criu/releases&lt;br /&gt;
* https://copr.fedorainfracloud.org/coprs/adrian/criu-el7/&lt;br /&gt;
&lt;br /&gt;
=== CoreOS ===&lt;br /&gt;
* https://github.com/coreos/coreos-overlay/tree/master/sys-process/criu&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
* https://tracker.debian.org/pkg/criu&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
* https://apps.fedoraproject.org/packages/criu&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
* http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-process/criu/&lt;br /&gt;
&lt;br /&gt;
=== Kali ===&lt;br /&gt;
* http://pkg.kali.org/pkg/criu&lt;br /&gt;
&lt;br /&gt;
=== Mageia ===&lt;br /&gt;
* http://madb.mageia.org/package/show/application/0/name/criu&lt;br /&gt;
&lt;br /&gt;
=== OpenSUSE ===&lt;br /&gt;
* https://build.opensuse.org/package/show/openSUSE:Factory/criu#&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
* https://launchpad.net/ubuntu/+source/criu&lt;br /&gt;
* https://launchpad.net/~criu/+archive/ubuntu/ppa&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://repology.org/project/criu/versions repology.org: search CRIU package in various Linux distributions]&lt;br /&gt;
* [https://qa.debian.org/popcon.php?package=criu Popularity contest statistics for criu]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Packages&amp;diff=5150</id>
		<title>Packages</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Packages&amp;diff=5150"/>
		<updated>2021-03-24T18:31:30Z</updated>

		<summary type="html">&lt;p&gt;Kir: moved distros to a sub-section; formatting changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page summarizes our knowledge about CRIU packages in various Linux distributions.&lt;br /&gt;
&lt;br /&gt;
== Specific distributions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== AltLinux ===&lt;br /&gt;
* http://packages.altlinux.org/crtools&lt;br /&gt;
&lt;br /&gt;
=== Arch ===&lt;br /&gt;
* https://aur.archlinux.org/packages/criu/&lt;br /&gt;
&lt;br /&gt;
As of '''2018-09-12''' the kernel package '''linux''' has CONFIG_CHECKPOINT_RESTORE enabled. The kernel package '''linux-lts''' has CONFIG_CHECKPOINT_RESTORE '''disabled'''.&lt;br /&gt;
&lt;br /&gt;
=== CentOS ===&lt;br /&gt;
* https://git.centos.org/rpms/criu/releases&lt;br /&gt;
* https://copr.fedorainfracloud.org/coprs/adrian/criu-el7/&lt;br /&gt;
&lt;br /&gt;
=== CoreOS ===&lt;br /&gt;
* https://github.com/coreos/coreos-overlay/tree/master/sys-process/criu&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
* https://tracker.debian.org/pkg/criu&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
* https://apps.fedoraproject.org/packages/criu&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
* http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-process/criu/&lt;br /&gt;
&lt;br /&gt;
=== Kali ===&lt;br /&gt;
* http://pkg.kali.org/pkg/criu&lt;br /&gt;
&lt;br /&gt;
=== Mageia ===&lt;br /&gt;
* http://madb.mageia.org/package/show/application/0/name/criu&lt;br /&gt;
&lt;br /&gt;
=== OpenSUSE ===&lt;br /&gt;
* https://build.opensuse.org/package/show/openSUSE:Factory/criu#&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
* https://launchpad.net/ubuntu/+source/criu&lt;br /&gt;
* https://launchpad.net/~criu/+archive/ubuntu/ppa&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://repology.org/project/criu/versions repology.org: search CRIU package in various Linux distributions]&lt;br /&gt;
* [http://pkgs.org/search/criu pkgs.org: search CRIU package in various Linux distributions]&lt;br /&gt;
* [https://qa.debian.org/popcon.php?package=criu Popularity contest statistics for criu]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Packages&amp;diff=5149</id>
		<title>Packages</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Packages&amp;diff=5149"/>
		<updated>2021-03-24T18:07:18Z</updated>

		<summary type="html">&lt;p&gt;Kir: added link to repology&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page summarizes our knowledge about CRIU packages in various Linux distributions.&lt;br /&gt;
&lt;br /&gt;
== AltLinux ==&lt;br /&gt;
: http://packages.altlinux.org/crtools&lt;br /&gt;
&lt;br /&gt;
== Arch ==&lt;br /&gt;
: https://aur.archlinux.org/packages/criu/&lt;br /&gt;
&lt;br /&gt;
As of '''2018-09-12''' the kernel package '''linux''' has CONFIG_CHECKPOINT_RESTORE enabled. The kernel package '''linux-lts''' has CONFIG_CHECKPOINT_RESTORE '''disabled'''.&lt;br /&gt;
&lt;br /&gt;
== CentOS ==&lt;br /&gt;
: https://git.centos.org/rpms/criu/releases&lt;br /&gt;
: https://copr.fedorainfracloud.org/coprs/adrian/criu-el7/&lt;br /&gt;
&lt;br /&gt;
== CoreOS ==&lt;br /&gt;
: https://github.com/coreos/coreos-overlay/tree/master/sys-process/criu&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
: https://tracker.debian.org/pkg/criu&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
: https://apps.fedoraproject.org/packages/criu&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-process/criu/&lt;br /&gt;
&lt;br /&gt;
== Kali ==&lt;br /&gt;
: http://pkg.kali.org/pkg/criu&lt;br /&gt;
&lt;br /&gt;
== Mageia ==&lt;br /&gt;
: http://madb.mageia.org/package/show/application/0/name/criu&lt;br /&gt;
&lt;br /&gt;
== OpenSUSE ==&lt;br /&gt;
: https://build.opensuse.org/package/show/openSUSE:Factory/criu#&lt;br /&gt;
&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
: https://launchpad.net/ubuntu/+source/criu&lt;br /&gt;
: https://launchpad.net/~criu/+archive/ubuntu/ppa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [https://repology.org/project/criu/versions repology.org: search CRIU package in various Linux distributions]&lt;br /&gt;
* [http://pkgs.org/search/criu pkgs.org: search CRIU package in various Linux distributions]&lt;br /&gt;
* [https://qa.debian.org/popcon.php?package=criu Popularity contest statistics for criu]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=MediaWiki:Sidebar&amp;diff=5132</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=MediaWiki:Sidebar&amp;diff=5132"/>
		<updated>2021-02-13T03:50:00Z</updated>

		<summary type="html">&lt;p&gt;Kir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;br /&gt;
&lt;br /&gt;
* News&lt;br /&gt;
** https://twitter.com/__criu__|Twitter&lt;br /&gt;
** http://www.youtube.com/c/OpenVZorg|YouTube&lt;br /&gt;
&lt;br /&gt;
* External resources&lt;br /&gt;
** https://github.com/checkpoint-restore/criu|Github / source code&lt;br /&gt;
** https://github.com/checkpoint-restore/criu/issues|Issues / bugs&lt;br /&gt;
** https://ci.openvz.org/view/CRIU/|Mr. Jenkins&lt;br /&gt;
** https://www.openhub.net/p/criu|Open Hub&lt;br /&gt;
** http://openvz.org/|OpenVZ&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Articles&amp;diff=5117</id>
		<title>Articles</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Articles&amp;diff=5117"/>
		<updated>2020-11-14T03:42:28Z</updated>

		<summary type="html">&lt;p&gt;Kir: shrink the list for main page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;This is a collection of external articles regarding the CRIU project, sorted by date.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
   NOTE this page is included into [[Main Page]] (look for External articles)&lt;br /&gt;
        so please make sure that Main Page looks good after your edits!&lt;br /&gt;
&lt;br /&gt;
   PLEASE keep the lists sorted by date, newest ones on top.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
* 2020-04-30, [https://dl.acm.org/doi/abs/10.1145/3342195.3387555 Balancing efficiency and fairness in heterogeneous GPU clusters for deep learning]&lt;br /&gt;
* 2020-03-17, [https://www.ssrg.ece.vt.edu/papers/vee20-h-container.pdf Edge Computing -- the Case for Heterogeneous-ISA Container Migration]&lt;br /&gt;
* 2019-10-03, [https://dl.acm.org/citation.cfm?id=3357542 Fast In-Memory CRIU for Docker Containers]&lt;br /&gt;
* 2019-09-24, [https://ieeexplore.ieee.org/document/8916436 Using Container Migration for High Performance Computing (HPC) Workloads Resilience]&lt;br /&gt;
* 2019-09-11, [https://arxiv.org/pdf/1909.04945.pdf Performance Estimation of Container-BasedCloud-to-Fog Offloading]&lt;br /&gt;
&amp;lt;!------------------------------------------------&lt;br /&gt;
   This is to cut the rest of it for Main Page,&lt;br /&gt;
   adding the More... link instead.&lt;br /&gt;
   Make sure to move this whole block up from time to time.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;: '''[[Articles|More external articles...]]'''&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     the below stuff is now shown on the Main Page&lt;br /&gt;
--------------------------------------------------&amp;gt;&lt;br /&gt;
* 2019-07-16, [https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=8754197 FastContainer: A Homeostatic System Architecture High-speed Adapting Execution Environment Changes]&lt;br /&gt;
* 2019-07-11, [https://ieeexplore.ieee.org/abstract/document/8814504 Exploring Potential for Non-Disruptive Vertical Auto Scaling and Resource Estimation in Kubernetes]&lt;br /&gt;
* 2019-07, University of Twente: [https://essay.utwente.nl/78342/1/coenen_MA_EEMCS.pdf Increasing Availability of the AEPU by Improving the Update Process]&lt;br /&gt;
* 2019-05-25, [https://dl.acm.org/citation.cfm?id=3303978 Replayable Execution Optimized for Page Sharing for a Managed Runtime Environment]&lt;br /&gt;
* 2019-04-29, Binghamton University: [http://www.cs.binghamton.edu/~huilu/pubs/mWarp.pdf mWarp: Accelerating Intra-Host Live Container Migration via Memory Warping]&lt;br /&gt;
* 2019-04-10, [https://lisas.de/~adrian/posts/2019-Apr-10-criu-and-selinux.html CRIU and SELinux]&lt;br /&gt;
* 2019-03-27, [https://www.mdpi.com/1424-8220/19/7/1488/pdf Container Migration in the Fog: A Performance Evaluation]&lt;br /&gt;
* 2019-03-25, [https://dl.acm.org/citation.cfm?id=3313947 Checkpointing and Migration of IoT Edge Functions]&lt;br /&gt;
* 2019-03-24, Future University Hakodate: [https://doi.asiabsdcon.org/10.25263/asiabsdcon2019/p07a Yet Another Container Migration on FreeBSD]&lt;br /&gt;
* 2019-03-09, [https://link.springer.com/article/10.1007/s10586-019-02920-6 Provenance-based fault tolerance technique recommendation for cloud-based scientific workflows: a practical approach]&lt;br /&gt;
* 2019-02-26, Georgia Institute of Technology / Peking University: [https://www.ndss-symposium.org/wp-content/uploads/2019/02/ndss2019_05A-3_Duan_paper.pdf Automating Patching of Vulnerable Open-Source Software Versions in Application Binaries]&lt;br /&gt;
* 2019-01-30, University West: [https://www.researchgate.net/publication/330798282_Evaluating_Distributed_MPI_Checkpoint_and_Restore_using_Docker_Containers_and_CRIU Evaluating Distributed MPI Checkpoint and Restore using Docker Containers and CRIU]&lt;br /&gt;
* 2018-12, University of Lille: [https://tel.archives-ouvertes.fr/tel-02011337/document Flexible Framework for Elasticity in Cloud Computing]&lt;br /&gt;
* 2018-12, Arizona State University: [https://search.proquest.com/openview/ef9070310256fe9ec9a663ebde537b36/1 Concurrent Checkpointing for Embedded Real-Time Systems]&lt;br /&gt;
* 2018-11-08, [https://lisas.de/~adrian/posts/2018-Nov-08-criu-configuration-files.html CRIU configuration files]&lt;br /&gt;
* 2018-11-06, [https://www.redhat.com/en/blog/using-criu-upgrade-vpn-servers-kernel-without-dropping-connections Using CRIU to upgrade a VPN server's kernel without dropping connections]&lt;br /&gt;
* 2018-10-13, [https://dl.acm.org/citation.cfm?id=3290626 Linux Process Tree Reconstruction Using The Attributed Grammar-Based Tree Transformation Model]&lt;br /&gt;
* 2018-10-10, [https://podman.io/blogs/2018/10/10/checkpoint-restore.html Adding checkpoint/restore support to Podman]&lt;br /&gt;
* 2018-09-15, [https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8539562 Stateful Container Migration employing Checkpoint-based Restoration for Orchestrated Container Clusters]&lt;br /&gt;
* 2018-09-07, [https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8502659 Container Live Migration for Latency Critical Industrial Applications on Edge Computing]&lt;br /&gt;
* 2018-08-15, University of Maryland: [https://drum.lib.umd.edu/bitstream/handle/1903/20499/CS-TR-5056.pdf Fast and Service-preserving Recovery from Malware Infections Using CRIU]&lt;br /&gt;
* 2018-07-31, [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6131214/ Hot-starting software containers for STAR aligner]&lt;br /&gt;
* 2018-07-07, Moscow Institute of Physics and Technology: [https://pdfs.semanticscholar.org/9ac4/f8ab4fd0492bfdc503831f60a5ce3d1d50a5.pdf?_ga=2.17262585.1140385641.1554239661-2109847679.1554239661 Using CRIU with HPC Containers: Field Experience]&lt;br /&gt;
* 2018-06-28, University of Aberdeen: [https://link.springer.com/chapter/10.1007/978-3-030-02465-9_13 Efficient Live Migration of Linux Containers]&lt;br /&gt;
* 2018-03-24, [https://www.smitechow.com/2018/03/compile-criu-on-centos-6.html Compile CRIU on CentOS 6]&lt;br /&gt;
* 2017-12-06, [https://lisas.de/~adrian/posts/2017-Dec-06-optimizing-live-container-migration-in-lxd.html Optimizing live container migration in LXD]&lt;br /&gt;
* 2017-10-12, Red Hat Blog: [http://rhelblog.redhat.com/2017/10/12/container-migration-around-the-world/ Container Migration Around The World]&lt;br /&gt;
* 2017-07-19, Red Hat Blog: [https://www.redhat.com/en/blog/how-can-process-snapshotrestore-help-save-your-day How can process snapshot/restore help save your day?]&lt;br /&gt;
* 2017-06-29, University West, Sweden: [http://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1144045&amp;amp;dswid=4414 Distributed Checkpointing with Docker Containers in High Performance Computing]&lt;br /&gt;
* 2017-06-06, [https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7980161 Voyager: Complete Container State Migration]&lt;br /&gt;
* 2017-06-06, Selectel Blog: [https://blog.selectel.com/managing-containers-runc/ Managing Containers in runC]&lt;br /&gt;
* 2016-12-16, University of Lisbon: [http://www.gsd.inesc-id.pt/~pjpf/ALMA-middleware-2016.pdf ALMA – GC-assisted JVM Live Migration for Java Server Applications]&lt;br /&gt;
* 2016-07-20, Red Hat KnowledgeBase: [https://access.redhat.com/articles/2455211 CRIU - Checkpoint/Restore in user space]&lt;br /&gt;
* 2016-07-20, LWN.net: [https://lwn.net/SubscriberLink/694593/4d6291b3f727791a/ Quality in open source: testing CRIU]&lt;br /&gt;
* 2016-06-22, Usenix: [https://www.usenix.org/conference/atc16/technical-sessions/presentation/kashyap Instant OS Updates via Userspace Checkpoint-and-Restart]&lt;br /&gt;
* 2016-05-04: [http://lisas.de/~adrian/?p=1183 Lazy Process Migration]&lt;br /&gt;
* 2015-12-31, [http://kimh.github.io/blog/jp/criu/experiment-to-suspend-and-resume-docker-container-with-criu-jp/ Use the CRIU Docker container of stop / resume to the challenge]&lt;br /&gt;
* 2015-12-31, [http://blog.codeship.com/how-containers-will-change-the-game-server-hosting-industry/ How Containers Will Change the Game Server Hosting Industry]&lt;br /&gt;
* 2015-09-21, [http://blog.circleci.com/checkpoint-and-restore-docker-container-with-criu/ Checkpoint and restore Docker container with CRIU]&lt;br /&gt;
* 2015-09-21, [https://blog.docker.com/2015/09/dolly-demo-linuxcon-runc/ Dolly Demo at LinuxCon: Rapid cloning of existing services with runC]&lt;br /&gt;
* 2015-09-10, [http://blog.tonicdev.com/2015/09/10/time-traveling-in-node.js-notebooks.html Time Traveling in Node.js Notebooks]&lt;br /&gt;
* 2015-01-01, [http://www.cisco.com/c/dam/en/us/solutions/collateral/data-center-virtualization/openstack-at-cisco/linux-containers-white-paper-cisco-red-hat.pdfLinux Containers: Why They’re in Your Future and What Has to Happen First]&lt;br /&gt;
* 2015-07-01, [https://kubernetes.io/blog/2015/07/how-did-quake-demo-from-dockercon-work/ How did the Quake demo from DockerCon Work?]&lt;br /&gt;
* 2015-05-06, [https://insights.ubuntu.com/2015/05/06/live-migration-in-lxd/ Live Migration in LXD] Ubuntu Insignts&lt;br /&gt;
* 2015-04-22, TuxDiary [http://tuxdiary.com/2015/04/22/dump-debug-resume-process-criu/ Dump, debug, resume process with criu]&lt;br /&gt;
* 2014-12-12, Symposium on Information and Communication Systems (SInCom 2014) [https://lisas.de/~adrian/proceedingsSInCom2014.pdf Checkpoint/Restore in User-Space with Open MPI]&lt;br /&gt;
* 2014-09-31, [http://www.reuters.com/article/wa-parallels-idUSnBw035202a+100+BSW20141103 Parallels Surpasses One Million Deployed Virtual Containers]&lt;br /&gt;
* 2014-08-01, ADMIN magazine: [http://www.admin-magazine.com/Archive/2014/22/Save-and-Restore-Linux-Processes-with-CRIU Save and Restore Linux Processes with CRIU]&lt;br /&gt;
* 2014-02-15, OCCAM Reproduce: [http://heirman.net/papers/reproduce2014.pdf Efficient, Accurate and Reproducible Simulation of Multi-Threaded Workloads] ([http://www.occamportal.org/slides/reproduce/reproduce14_slides_05.pdf slides])&lt;br /&gt;
* 2013-11-25, Phoronix: [http://www.phoronix.com/scan.php?page=news_item&amp;amp;px=MTUyNjE Checkpoint-Restore Hits v1.0: Freeze Your Linux Apps]&lt;br /&gt;
* 2013-11-25, LWN: [http://lwn.net/Articles/574918/ A note about 1.0]&lt;br /&gt;
* 2013-10-29, LWN: [http://lwn.net/Articles/572125/ Kernel summit report]&lt;br /&gt;
* 2013-02-01, A blog [http://www.anchor.com.au/blog/2013/02/overview-of-checkpoint-and-restore-live-migrating-processes-on-a-linux-system/ post] upon LCA-2013 talk.&lt;br /&gt;
* 2013-01-09, LWN: [http://lwn.net/Articles/531939/ Checkpoint/restore and signals]&lt;br /&gt;
* 2012-11-20, LWN: [http://lwn.net/Articles/525675/ LCE: Checkpoint/restore in user space: are we there yet?]&lt;br /&gt;
* 2012-07-24, OpenVZ blog: [http://openvz.livejournal.com/42414.html CRtools 0.1 released!]&lt;br /&gt;
* 2012-05-01, LWN: [http://lwn.net/Articles/495304/ TCP connection repair]&lt;br /&gt;
* 2012-02-26, The International Symposium on Grids and Clouds (ISGC) [https://lisas.de/~adrian/ISGC-2012_031.pdf Pos (isgc 2012) 031 live process migration for load balancing and/or fault tolerance]&lt;br /&gt;
* 2012-01-31, LWN: [http://lwn.net/Articles/478111/ Preparing for user-space checkpoint/restore]&lt;br /&gt;
* 2011-07-19, LWN: [http://lwn.net/Articles/452184/ Checkpoint/restart (mostly) in user space]&lt;br /&gt;
&lt;br /&gt;
=== In Russian ===&lt;br /&gt;
* 13.05.2016, Habrahabr: [https://habrahabr.ru/post/283504/ Особенности тестирования технологии C/R в Linux]&lt;br /&gt;
* 09.03.2016, Opennet: [http://www.opennet.ru/opennews/art.shtml?num=44015 Выпуск CRIU 2.0, системы для сохранения и восстановления состояния процессов в Linux]&lt;br /&gt;
* 18.12.2015, Opennet: [http://www.opennet.ru/opennews/art.shtml?num=43539 CRIU, путь от вызывающей непонимание разработки до интеграции в Red Hat Enterprise Linux] &lt;br /&gt;
* 09.12.2015, Opennet: [http://www.opennet.ru/opennews/art.shtml?num=43489 Выпуск CRIU 1.8, системы для сохранения и восстановления состояния процессов в Linux] &lt;br /&gt;
* 09.09.2015, Opennet: [http://www.opennet.ru/opennews/art.shtml?num=42939 Выпуск CRIU 1.7, системы для сохранения и восстановления состояния процессов в Linux]&lt;br /&gt;
* 25.08.2015, Opennet: [http://www.opennet.ru/opennews/art.shtml?num=42850 Проект OpenVZ анонсировал новый компонент для миграции Linux контейнеров - P.Haul]&lt;br /&gt;
* 27.05.2015, Opennet: [http://www.opennet.ru/opennews/art.shtml?num=42315 Статус интеграции проектов CRIU и Docker]&lt;br /&gt;
* 25.11.2013, Opennet: [http://www.opennet.ru/opennews/art.shtml?num=38519 Анонс выхода 1.0]&lt;br /&gt;
* 28.04.2015, Типичный программист: [http://tproger.ru/interview/pavel-emelyanov/ Разработка ядра Linux — это общение в клубе по интересам]&lt;br /&gt;
* 22.04.2013, Habrahabr: [http://habrahabr.ru/post/177499/ В преддверии очередного релиза CRIU]&lt;br /&gt;
* 04.03.2013, IT-computer: [http://www.it-computer.com/osvaivaem-sistemu-zamorozki-processov-criu Осваиваем систему заморозки процессов CRIU]&lt;br /&gt;
* 28.09.2012, Opennet: [http://www.opennet.ru/opennews/art.shtml?num=34958 CRIU 0.2 release] &lt;br /&gt;
* 05.11.2013, Xakep: [https://xakep.ru/2013/11/05/criu-manual/ Осваиваем систему заморозки процессов CRIU]&lt;br /&gt;
* 15.08.2013, Habrahabr: [http://habrahabr.ru/company/parallels/blog/190066/ «Разработка ядра Linux — это общение в клубе по интересам»]&lt;br /&gt;
* 01.10.2012, YaC 2012: [http://events.yandex.ru/events/yac/2012/talks/352/ больше, чем живая миграция для Linux контейнеров]&lt;br /&gt;
* 24.07.2012, Habrahabr: [http://habrahabr.ru/post/148413/ CRIU — новый амбициозный проект для сохранения и восстановления состояния процессов]&lt;br /&gt;
* 24.07.2012, Ru-OpenVZ blog: [http://ru-openvz.livejournal.com/5753.html Вышел первый релиз CRtools, версия 0.1]&lt;br /&gt;
* 24.07.2012, Opennet: [http://www.opennet.ru/opennews/art.shtml?num=34408 Первый релиз CRtools, утилиты для заморозки и восстановления состояния процессов в Linux]&lt;br /&gt;
* 24.07.2012, LOR: [http://www.linux.org.ru/news/kernel/8021514 Вышел первый релиз CRtools, версия 0.1]&lt;br /&gt;
* Копипаста о v0.1 &amp;quot;CRIU / CRtools 0.1 — создание контрольных точек Linux-приложений и восстановление с них&amp;quot;: [http://rosinvest.com/novosti/949423 Rosinvest], [http://www.nixp.ru/news/11854.html NIXP] [http://pcnews.ru/top/news/day/criu-crtools-linux-openvz-checkpoint-restore-in-userspace-cpt-system-90-10-lxc-org-398305.html PCNews]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=BPF_Maps&amp;diff=5116</id>
		<title>BPF Maps</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=BPF_Maps&amp;diff=5116"/>
		<updated>2020-11-14T03:37:51Z</updated>

		<summary type="html">&lt;p&gt;Kir: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BPF maps are kernel objects which store data (used by BPF programs) in the form of key-value pairs. Applications access BPF maps using file descriptors. C/R of BPF maps involves serializing their ''meta-data'' and ''data'':&lt;br /&gt;
&lt;br /&gt;
: '''Meta-data''' - This includes information such as map type, key size, value size, etc. CRIU obtains this information from the proc filesystem and using the &amp;lt;code&amp;gt;bpf&amp;lt;/code&amp;gt; system call with argument &amp;lt;code&amp;gt;BPF_OBJ_GET_INFO_BY_FD&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
: '''Data''' - This is the map's contents, i.e. the actual key-value pairs. CRIU relies on batch operations to read (&amp;lt;code&amp;gt;BPF_MAP_LOOKUP_BATCH&amp;lt;/code&amp;gt;) key-value pairs from maps during the checkpoint stage and to write (&amp;lt;code&amp;gt;BPF_MAP_UPDATE_BATCH&amp;lt;/code&amp;gt;) them during the restore phase.&lt;br /&gt;
&lt;br /&gt;
== Support for BPF Maps ==&lt;br /&gt;
&lt;br /&gt;
CRIU currently supports C/R of the following BPF map types:&lt;br /&gt;
&lt;br /&gt;
* BPF_MAP_TYPE_HASH&lt;br /&gt;
* BPF_MAP_TYPE_ARRAY&lt;br /&gt;
&lt;br /&gt;
== To-Do ==&lt;br /&gt;
&lt;br /&gt;
* C/R of BTF (BPF Type Format) information&lt;br /&gt;
* C/R of other kinds of BPF maps&lt;br /&gt;
 &lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://www.kernel.org/doc/html/latest/bpf/index.html BPF Documentation]&lt;br /&gt;
* [https://blogs.oracle.com/linux/notes-on-bpf-1 Notes on BPF]&lt;br /&gt;
* [https://www.collabora.com/news-and-blog/blog/2019/04/05/an-ebpf-overview-part-1-introduction/ An eBPF Overview]&lt;br /&gt;
&lt;br /&gt;
[[Category: Under the hood‏‎]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu/3.13&amp;diff=5115</id>
		<title>Download/criu/3.13</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu/3.13&amp;diff=5115"/>
		<updated>2020-11-04T00:03:10Z</updated>

		<summary type="html">&lt;p&gt;Kir: added willet image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Willet.png|200px|right]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
      **** FOR STEPS NEEDED TO MAKE A RELEASE, SEE https://criu.org/Releasing&lt;br /&gt;
      Use {{Bug|123}} to link to a github issue&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Image:Willet_texas_april2003_1_1280.png|400px|right]]&lt;br /&gt;
{{Release|3.13}}&lt;br /&gt;
&lt;br /&gt;
=== New features ===&lt;br /&gt;
* VDSO: arm32 support&lt;br /&gt;
* Add TLS support for [[page server]] communications&lt;br /&gt;
* &amp;quot;Ignore&amp;quot; mode for {{Opt|--manage-cgroups}}&lt;br /&gt;
* Restore SO_BROADCAST option for inet [[sockets]]&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* Auxiliary events were left in inotify queues&lt;br /&gt;
* Lazy-pages daemon didn't detect stack pages and surrounders properly and marked them as &amp;quot;lazy&amp;quot;&lt;br /&gt;
* Memory and resource leakage fixes detected by coverity, cppcheck and clang&lt;br /&gt;
&lt;br /&gt;
=== Improvements ===&lt;br /&gt;
* Use gettimeofday() directly from vdso for restore timings&lt;br /&gt;
* Reformat all .py code into pep8 style&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu/3.15&amp;diff=5114</id>
		<title>Download/criu/3.15</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu/3.15&amp;diff=5114"/>
		<updated>2020-11-03T23:59:37Z</updated>

		<summary type="html">&lt;p&gt;Kir: cgroup2 -&amp;gt; cgroups v2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
      **** FOR STEPS NEEDED TO MAKE A RELEASE, SEE https://criu.org/Releasing&lt;br /&gt;
      Use {{Bug|123}} to link to a github issue&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Image:3.15.jpg|400px|right]]&lt;br /&gt;
{{Release|3.15}}&lt;br /&gt;
&lt;br /&gt;
=== New features ===&lt;br /&gt;
* Introduced criu-image-streamer (also see https://github.com/checkpoint-restore/criu-image-streamer).&lt;br /&gt;
* Added MIPS support.&lt;br /&gt;
* Allow checkpointing out of existing PID namespace and restoring into existing PID namespace.&lt;br /&gt;
* Added additional file validation mechanisms (buildid in addition to filesize).&lt;br /&gt;
* Added support to checkpoint and restore BPF hash maps (BPF_MAP_TYPE_HASH) and array maps (BPF_MAP_TYPE_ARRAY).&lt;br /&gt;
* Initial cgroups v2 support&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* Many fixes here and there&lt;br /&gt;
&lt;br /&gt;
=== Improvements ===&lt;br /&gt;
* Additional libcriu interfaces (orphan_pts_master, version, FD handling)&lt;br /&gt;
* Use the new mount API&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Packages&amp;diff=5068</id>
		<title>Packages</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Packages&amp;diff=5068"/>
		<updated>2020-07-07T18:39:18Z</updated>

		<summary type="html">&lt;p&gt;Kir: fix centos link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page summarizes our knowledge about CRIU packages in various Linux distributions.&lt;br /&gt;
&lt;br /&gt;
== AltLinux ==&lt;br /&gt;
: http://packages.altlinux.org/crtools&lt;br /&gt;
&lt;br /&gt;
== Arch ==&lt;br /&gt;
: https://aur.archlinux.org/packages/criu/&lt;br /&gt;
&lt;br /&gt;
As of '''2018-09-12''' the kernel package '''linux''' has CONFIG_CHECKPOINT_RESTORE enabled. The kernel package '''linux-lts''' has CONFIG_CHECKPOINT_RESTORE '''disabled'''.&lt;br /&gt;
&lt;br /&gt;
== CentOS ==&lt;br /&gt;
: https://git.centos.org/rpms/criu/releases&lt;br /&gt;
: https://copr.fedorainfracloud.org/coprs/adrian/criu-el7/&lt;br /&gt;
&lt;br /&gt;
== CoreOS ==&lt;br /&gt;
: https://github.com/coreos/coreos-overlay/tree/master/sys-process/criu&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
: https://tracker.debian.org/pkg/criu&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
: https://apps.fedoraproject.org/packages/criu&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-process/criu/&lt;br /&gt;
&lt;br /&gt;
== Kali ==&lt;br /&gt;
: http://pkg.kali.org/pkg/criu&lt;br /&gt;
&lt;br /&gt;
== Mageia ==&lt;br /&gt;
: http://madb.mageia.org/package/show/application/0/name/criu&lt;br /&gt;
&lt;br /&gt;
== OpenSUSE ==&lt;br /&gt;
: https://build.opensuse.org/package/show/openSUSE:Factory/criu#&lt;br /&gt;
&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
: https://launchpad.net/ubuntu/+source/criu&lt;br /&gt;
: https://launchpad.net/~criu/+archive/ubuntu/ppa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://pkgs.org/search/criu Search CRIU package in various Linux distributions]&lt;br /&gt;
* [https://qa.debian.org/popcon.php?package=criu Popularity contest statistics for criu]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Codename&amp;diff=5055</id>
		<title>Template:Codename</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Codename&amp;diff=5055"/>
		<updated>2020-04-21T03:01:51Z</updated>

		<summary type="html">&lt;p&gt;Kir: added 3.14&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch: v{{{1}}}&lt;br /&gt;
 | v2.1  = Steel Lapwing&lt;br /&gt;
 | v2.2  = Carbon Nightingale&lt;br /&gt;
 | v2.3  = Wooden Duck&lt;br /&gt;
 | v2.4  = Marble Lark&lt;br /&gt;
 | v2.5  = Concrete Oriole&lt;br /&gt;
 | v2.6  = Paper Crane&lt;br /&gt;
 | v2.7  = Rubber Owl&lt;br /&gt;
 | v2.8  = Bronze Siskin&lt;br /&gt;
 | v2.9  = Silk Tit&lt;br /&gt;
 | v2.10 = Brass Waxwing&lt;br /&gt;
 | v2.11 = Acrylic Bullfinch&lt;br /&gt;
 | v2.12 = Vulcanite Rook&lt;br /&gt;
 | v3.0 = Basalt Wagtail&lt;br /&gt;
 | v3.1 = Graphene Swift&lt;br /&gt;
 | v3.2 = Tin Hoopoe&lt;br /&gt;
 | v3.3 = Crystal Pelican&lt;br /&gt;
 | v3.4 = Cobalt Swan&lt;br /&gt;
 | v3.5 = Clay Jay&lt;br /&gt;
 | v3.6 = Alabaster Finch&lt;br /&gt;
 | v3.7 = Vinyl Magpie&lt;br /&gt;
 | v3.8 = Snow Bunting&lt;br /&gt;
 | v3.9 = Sand Martin&lt;br /&gt;
 | v3.10 = Granite Eagle&lt;br /&gt;
 | v3.11 = Glass Flamingo&lt;br /&gt;
 | v3.12 = Ice Penguin&lt;br /&gt;
 | v3.13 = Silicon Willet&lt;br /&gt;
 | v3.14 = Platinum Peacock&lt;br /&gt;
 | &amp;lt;!-- no codename --&amp;gt;&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to get the codename of a specified release. If there is no codename, empty string is produced.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|VERSION}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Markup&lt;br /&gt;
 ! Result&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|3.3}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|3.3}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|2.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|2.1}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|2.0}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|2.0}}&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Release schedule]] for future codenames&lt;br /&gt;
* [[Template:Release date]]&lt;br /&gt;
* [[Template:criu]]&lt;br /&gt;
* [[Template:Release]]&lt;br /&gt;
* [[Template:Latest release]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Codename&amp;diff=5054</id>
		<title>Template:Codename</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Codename&amp;diff=5054"/>
		<updated>2020-04-21T03:01:09Z</updated>

		<summary type="html">&lt;p&gt;Kir: rm 3.2.1 (patch releases does not have codenames)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch: v{{{1}}}&lt;br /&gt;
 | v2.1  = Steel Lapwing&lt;br /&gt;
 | v2.2  = Carbon Nightingale&lt;br /&gt;
 | v2.3  = Wooden Duck&lt;br /&gt;
 | v2.4  = Marble Lark&lt;br /&gt;
 | v2.5  = Concrete Oriole&lt;br /&gt;
 | v2.6  = Paper Crane&lt;br /&gt;
 | v2.7  = Rubber Owl&lt;br /&gt;
 | v2.8  = Bronze Siskin&lt;br /&gt;
 | v2.9  = Silk Tit&lt;br /&gt;
 | v2.10 = Brass Waxwing&lt;br /&gt;
 | v2.11 = Acrylic Bullfinch&lt;br /&gt;
 | v2.12 = Vulcanite Rook&lt;br /&gt;
 | v3.0 = Basalt Wagtail&lt;br /&gt;
 | v3.1 = Graphene Swift&lt;br /&gt;
 | v3.2 = Tin Hoopoe&lt;br /&gt;
 | v3.3 = Crystal Pelican&lt;br /&gt;
 | v3.4 = Cobalt Swan&lt;br /&gt;
 | v3.5 = Clay Jay&lt;br /&gt;
 | v3.6 = Alabaster Finch&lt;br /&gt;
 | v3.7 = Vinyl Magpie&lt;br /&gt;
 | v3.8 = Snow Bunting&lt;br /&gt;
 | v3.9 = Sand Martin&lt;br /&gt;
 | v3.10 = Granite Eagle&lt;br /&gt;
 | v3.11 = Glass Flamingo&lt;br /&gt;
 | v3.12 = Ice Penguin&lt;br /&gt;
 | v3.13 = Silicon Willet&lt;br /&gt;
 | &amp;lt;!-- no codename --&amp;gt;&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template is used to get the codename of a specified release. If there is no codename, empty string is produced.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|VERSION}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Markup&lt;br /&gt;
 ! Result&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|3.3}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|3.3}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|2.1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|2.1}}&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;{{Codename|2.0}}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
 | {{Codename|2.0}}&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Release schedule]] for future codenames&lt;br /&gt;
* [[Template:Release date]]&lt;br /&gt;
* [[Template:criu]]&lt;br /&gt;
* [[Template:Release]]&lt;br /&gt;
* [[Template:Latest release]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu/3.14&amp;diff=5053</id>
		<title>Download/criu/3.14</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu/3.14&amp;diff=5053"/>
		<updated>2020-04-21T02:59:01Z</updated>

		<summary type="html">&lt;p&gt;Kir: more links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
      **** FOR STEPS NEEDED TO MAKE A RELEASE, SEE https://criu.org/Releasing&lt;br /&gt;
      Use {{Bug|123}} to link to a github issue&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{{Release|3.14}}&lt;br /&gt;
&lt;br /&gt;
=== New features ===&lt;br /&gt;
* C/R of memfd memory mappings and file descriptors.&lt;br /&gt;
* Add time namespace support.&lt;br /&gt;
* Add the [[Optimizing_pre_dump_algorithm|read pre-dump mode which uses process_vm_readv]].&lt;br /&gt;
* Add {{Opt|--cgroup-yard}} option&lt;br /&gt;
* Add support of the cgroup v2 freezer.&lt;br /&gt;
* Add support of opened O_PATH fds.&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* Fix C/R ia32 processes on AMD {{Bug|398}}&lt;br /&gt;
* Fix cross-compilation&lt;br /&gt;
* Many fixes here and there&lt;br /&gt;
&lt;br /&gt;
=== Improvements ===&lt;br /&gt;
* Use clone3() with set_tid to restore processes&lt;br /&gt;
* Clean up compel headers.&lt;br /&gt;
* Use the new mount API&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Podman&amp;diff=5052</id>
		<title>Podman</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Podman&amp;diff=5052"/>
		<updated>2020-04-20T23:09:40Z</updated>

		<summary type="html">&lt;p&gt;Kir: /* Container Live Migration */ there was no 3.12.1 (officially)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article describes the status of CRIU integration with [https://podman.io/ Podman], and how to use it.&lt;br /&gt;
&lt;br /&gt;
== Container Checkpoint/Restore ==&lt;br /&gt;
&lt;br /&gt;
Podman supports checkpointing and restoring since version 0.10.1 (October 2018). This initial support only supports checkpointing and restoring containers on the same host:&lt;br /&gt;
&lt;br /&gt;
 # podman run -d --name looper busybox /bin/sh -c \&lt;br /&gt;
          'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'&lt;br /&gt;
&lt;br /&gt;
You can verify that the container is running by observing its logs:&lt;br /&gt;
&lt;br /&gt;
 # podman logs -l&lt;br /&gt;
&lt;br /&gt;
Or by running &amp;lt;code&amp;gt;podman ps&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you do this a few times you will notice that the integers are increasing. Now the container can be checkpointed:&lt;br /&gt;
&lt;br /&gt;
 # podman container checkpoint -l&lt;br /&gt;
&lt;br /&gt;
Once the container is checkpointed it will be no longer visible in &amp;lt;code&amp;gt;podman ps&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following command can be used to restore the container:&lt;br /&gt;
&lt;br /&gt;
 # podman container restore -l&lt;br /&gt;
&lt;br /&gt;
Using &amp;lt;code&amp;gt;podman logs -l&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;podman ps&amp;lt;/code&amp;gt; it can be verified that the container was restored and that it continued running from the point in time when it was checkpointed.&lt;br /&gt;
&lt;br /&gt;
This requires at least CRIU 3.11.&lt;br /&gt;
&lt;br /&gt;
There is one recording demonstrating Podman's checkpoint/restore support:&lt;br /&gt;
&lt;br /&gt;
* https://asciinema.org/a/205183&lt;br /&gt;
&lt;br /&gt;
== Container Live Migration ==&lt;br /&gt;
&lt;br /&gt;
To be actually able to migrate a container from one system to another at least Podman version 1.4.0 (June 2019) is required. With version 1.4.0 Podman is now able to export a complete checkpoint which can then be transferred:&lt;br /&gt;
&lt;br /&gt;
 # podman run -d --name looper busybox /bin/sh -c \&lt;br /&gt;
          'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'&lt;br /&gt;
 # podman container checkpoint -l --export=/tmp/chkpt.tar.gz&lt;br /&gt;
 # scp /tmp/chkpt.tar.gz &amp;lt;destination-host&amp;gt;:/tmp&lt;br /&gt;
&lt;br /&gt;
Once the checkpoint archive has been transferred to the destination system the container can there be restored from the checkpoint archive:&lt;br /&gt;
&lt;br /&gt;
 # podman container restore --import=/tmp/chkpt.tar.gz&lt;br /&gt;
&lt;br /&gt;
Now the container continues to run from the same point where it was previously checkpointed on the source system.&lt;br /&gt;
&lt;br /&gt;
From a checkpoint archive it is also possible to restore multiple copies of a container with different names:&lt;br /&gt;
&lt;br /&gt;
 # podman container restore --import=/tmp/chkpt.tar.gz -n looper1&lt;br /&gt;
 # podman container restore --import=/tmp/chkpt.tar.gz -n looper2&lt;br /&gt;
 # podman container restore --import=/tmp/chkpt.tar.gz -n looper3&lt;br /&gt;
&lt;br /&gt;
Each of these restored containers will be running from the point in time the container was checkpointed.&lt;br /&gt;
&lt;br /&gt;
One important limitation is that the container cannot modify the file-system. If a container modifies the file-system, these modified directories either have to be mounted into the container (&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;) or these directories have to be marked as &amp;lt;code&amp;gt;--tmpfs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This requires at least CRIU 3.12 (3.13 for full SELinux support).&lt;br /&gt;
&lt;br /&gt;
There are two recordings demonstrating Podman's container migration feature:&lt;br /&gt;
&lt;br /&gt;
* https://asciinema.org/a/249918&lt;br /&gt;
* https://asciinema.org/a/249922&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu/3.13&amp;diff=5051</id>
		<title>Download/criu/3.13</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu/3.13&amp;diff=5051"/>
		<updated>2020-04-20T23:05:38Z</updated>

		<summary type="html">&lt;p&gt;Kir: /* Bugfixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Willet.png|200px|right]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
      **** FOR STEPS NEEDED TO MAKE A RELEASE, SEE https://criu.org/Releasing&lt;br /&gt;
      Use {{Bug|123}} to link to a github issue&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{{Release|3.13}}&lt;br /&gt;
&lt;br /&gt;
=== New features ===&lt;br /&gt;
* VDSO: arm32 support&lt;br /&gt;
* Add TLS support for [[page server]] communications&lt;br /&gt;
* &amp;quot;Ignore&amp;quot; mode for {{Opt|--manage-cgroups}}&lt;br /&gt;
* Restore SO_BROADCAST option for inet [[sockets]]&lt;br /&gt;
&lt;br /&gt;
=== Bugfixes ===&lt;br /&gt;
* Auxiliary events were left in inotify queues&lt;br /&gt;
* Lazy-pages daemon didn't detect stack pages and surrounders properly and marked them as &amp;quot;lazy&amp;quot;&lt;br /&gt;
* Memory and resource leakage fixes detected by coverity, cppcheck and clang&lt;br /&gt;
&lt;br /&gt;
=== Improvements ===&lt;br /&gt;
* Use gettimeofday() directly from vdso for restore timings&lt;br /&gt;
* Reformat all .py code into pep8 style&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Download/criu&amp;diff=5050</id>
		<title>Download/criu</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Download/criu&amp;diff=5050"/>
		<updated>2020-04-20T23:04:28Z</updated>

		<summary type="html">&lt;p&gt;Kir: there's no 3.12.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Latest version ==&lt;br /&gt;
&lt;br /&gt;
{{:Download/criu/{{Last version}}}}&lt;br /&gt;
&lt;br /&gt;
== Old versions ==&lt;br /&gt;
&lt;br /&gt;
=== 3.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/3.x|3.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |3.12|3.11|3.10|3.9|3.8.1|3.8|3.7|3.6|3.5|3.4|3.3|3.2.1|3.2|3.1|3.0}}&lt;br /&gt;
&lt;br /&gt;
=== 2.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/2.x|2.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |2.12.1|2.12|2.11.1|2.11|2.10|2.9|2.8|2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0}}&lt;br /&gt;
&lt;br /&gt;
=== 1.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/1.x|1.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |1.8|1.7.2|1.7|1.6.1|1.6|1.5.2|1.5.1|1.5|1.4|1.3.1|1.3|1.3-rc2|1.3-rc1|1.2|1.1|1.1-rc2|1.1-rc1|1.0}}&lt;br /&gt;
&lt;br /&gt;
=== 0.x ===&lt;br /&gt;
&lt;br /&gt;
The following [[Download/criu/0.x|0.x]] releases were made:&lt;br /&gt;
&lt;br /&gt;
* {{fe|criu|{{nln}}* |0.8|0.7|0.6|0.5|0.4|0.3|0.2|0.1}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Changelogs]] to see all the changelogs on a single page.&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Net-next.git&amp;diff=5046</id>
		<title>Template:Net-next.git</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Net-next.git&amp;diff=5046"/>
		<updated>2020-03-27T01:00:33Z</updated>

		<summary type="html">&lt;p&gt;Kir: update URL, rm &amp;lt;code&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id={{{1}}} net-next:&amp;amp;nbsp;{{{1}}}]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=Template:Torvalds.git&amp;diff=5045</id>
		<title>Template:Torvalds.git</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=Template:Torvalds.git&amp;diff=5045"/>
		<updated>2020-03-27T00:58:25Z</updated>

		<summary type="html">&lt;p&gt;Kir: update URL, rm &amp;lt;code&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id={{{1}}} torvalds:&amp;amp;nbsp;{{{1}}}]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=External_bind_mounts&amp;diff=5044</id>
		<title>External bind mounts</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=External_bind_mounts&amp;diff=5044"/>
		<updated>2020-03-25T19:55:40Z</updated>

		<summary type="html">&lt;p&gt;Kir: don't make &amp;quot;Sharing&amp;quot; the subsection of &amp;quot;old days&amp;quot;; minor English fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
One of typical external resources when dumping a container (especially LXC/Docker) is a mount point whose root sits outside of the container's root. This situation was intended to be resolved using [[plugins]] but turned out to be common enough to introduce a built-in way of handling it.&lt;br /&gt;
&lt;br /&gt;
== What is external bind mount ==&lt;br /&gt;
&lt;br /&gt;
The way to create such is simple as&lt;br /&gt;
&lt;br /&gt;
 mkdir /root&lt;br /&gt;
 mount --bind /foo /root/bar&lt;br /&gt;
 chroot /root&lt;br /&gt;
&lt;br /&gt;
This is it. From now on, the /bar file is a mountpoint whose root (the source) is not accessible directly.&lt;br /&gt;
&lt;br /&gt;
If you look at the /proc/$pid/mountinfo file of a task seeing such you would see smth like&lt;br /&gt;
&lt;br /&gt;
 11 23 8:3 /root / ... - ext4 /dev/sda1 ...&lt;br /&gt;
 23 34 8:3 /foo /bar ... - ext4 /dev/sda1 ...&lt;br /&gt;
&lt;br /&gt;
The columns 4 and 5 are root and mountpoint respectively. You can see, that the / is /root file from /dev/sda1 device and /bar file is a mountpoint with the root being /foo file from the same device.&lt;br /&gt;
&lt;br /&gt;
== How to teach CRIU to dump them ==&lt;br /&gt;
&lt;br /&gt;
By default CRIU doesn't dump such mountpoints, because there's no way CRIU will be able to restore it -- the root of these mounts is out of scope of what CRIU dumped. In the logs you would see a message like&lt;br /&gt;
&lt;br /&gt;
 34:/bar doesn't have a proper root mount&lt;br /&gt;
&lt;br /&gt;
which means the mountpoint /bar has inaccessible root.&lt;br /&gt;
&lt;br /&gt;
To dump and restore them there's the &amp;lt;code&amp;gt;--external mnt[KEY]:VAL&amp;lt;/code&amp;gt; option that sets up external mounts root mapping.&lt;br /&gt;
&lt;br /&gt;
On dump, KEY is a mountpoint inside container, and corresponding VAL is a string that will be written into the image as mountpoint's root value.&lt;br /&gt;
&lt;br /&gt;
On restore, KEY is the value from the image (VAL from dump), and the VAL is the path on host that will be bind-mounted into container (to the mountpoint path from image).&lt;br /&gt;
&lt;br /&gt;
For example, if we want to dump the task above we should call&lt;br /&gt;
&lt;br /&gt;
 criu dump ... --external mnt[/bar]:barmount&lt;br /&gt;
&lt;br /&gt;
The word &amp;lt;code&amp;gt;barmount&amp;lt;/code&amp;gt; is an arbitrary identifier, that will be put in the image file instead of the original root path&lt;br /&gt;
&lt;br /&gt;
 criu show -f mountpoints.img -F mnt_id,root,mountpoint&lt;br /&gt;
 mnt_id: 0x22 root: barmount mountpoint: /bar&lt;br /&gt;
&lt;br /&gt;
On restore we should tell CRIU where to bind mount the &amp;lt;code&amp;gt;barmount&amp;lt;/code&amp;gt; from like this&lt;br /&gt;
&lt;br /&gt;
 criu restore ... --external mnt[barmount]:/foo&lt;br /&gt;
&lt;br /&gt;
With this CRIU will bind mount the /foo into proper mountpoint.&lt;br /&gt;
&lt;br /&gt;
== Auto detection ==&lt;br /&gt;
&lt;br /&gt;
In case one wants CRIU to autodetect and dump all the external bind mounts, and there is no need to change host mount points on restore, one can use a special syntax:&lt;br /&gt;
&lt;br /&gt;
 criu dump ... --external mnt[]:''flags''&lt;br /&gt;
&lt;br /&gt;
Note here is nothing inside square brackets, and the optional &amp;lt;code&amp;gt;:''flags''&amp;lt;/code&amp;gt; argument can contain the following characters:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;&lt;br /&gt;
: Also enable dumping of external master mounts (as in &amp;lt;code&amp;gt;mount --make-slave&amp;lt;/code&amp;gt;)&lt;br /&gt;
; &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
: Also enable dumping of external shared mounts (as in &amp;lt;code&amp;gt;mount --make-shared&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
By default, neither master nor shared external mounts are not dumped (if found, dump is aborted). Note if &amp;lt;code&amp;gt;''flags''&amp;lt;/code&amp;gt; are not given, semicolon is optional.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
 criu dump ... --external 'mnt[]'&lt;br /&gt;
&lt;br /&gt;
Auto-detect and dump all external bind mounts.&lt;br /&gt;
&lt;br /&gt;
 criu dump ... --external 'mnt[]:s'&lt;br /&gt;
&lt;br /&gt;
Auto-detect and dump all external bind mounts, including the shared ones.&lt;br /&gt;
&lt;br /&gt;
 criu dump ... --external 'mnt[]:sm'&lt;br /&gt;
&lt;br /&gt;
Auto-detect and dump all external bind mounts, including the shared and the master ones.&lt;br /&gt;
&lt;br /&gt;
== Sharing ==&lt;br /&gt;
&lt;br /&gt;
External bindmounts can both have internal/external sharing. Please see the example:&lt;br /&gt;
&lt;br /&gt;
 # Preparation&lt;br /&gt;
 unshare -m --propagation private&lt;br /&gt;
 mkdir /external_mount_sharing_test&lt;br /&gt;
 mount -t tmpfs tmpfs /external_mount_sharing_test/&lt;br /&gt;
 mount --make-private /external_mount_sharing_test/&lt;br /&gt;
 cd /external_mount_sharing_test&lt;br /&gt;
 # Source of external mount&lt;br /&gt;
 mkdir external_mount&lt;br /&gt;
 mount -t tmpfs tmpfs-external external_mount/&lt;br /&gt;
 mount --make-shared external_mount/&lt;br /&gt;
 cat /proc/$$/mountinfo | grep external&lt;br /&gt;
 # 811 755 0:60 / /external_mount_sharing_test rw,relatime - tmpfs tmpfs rw&lt;br /&gt;
 # 812 811 0:62 / /external_mount_sharing_test/external_mount rw,relatime shared:290 - tmpfs tmpfs-external rw&lt;br /&gt;
 &lt;br /&gt;
 # Switch to CT mntns&lt;br /&gt;
 unshare -m --propagation unchanged sh&lt;br /&gt;
 mkdir root&lt;br /&gt;
 mount -t tmpfs tmpfs-root root/&lt;br /&gt;
 mkdir root/external_sharing root/internal_sharing root/proc&lt;br /&gt;
 &lt;br /&gt;
 # Create external mount&lt;br /&gt;
 mount --bind external_mount/ root/external_sharing&lt;br /&gt;
 mount --bind external_mount/ root/internal_sharing&lt;br /&gt;
 mount --make-private root/internal_sharing&lt;br /&gt;
 mount --make-shared root/internal_sharing&lt;br /&gt;
 &lt;br /&gt;
 # More preparations&lt;br /&gt;
 mount --bind /proc root/proc&lt;br /&gt;
 cd root&lt;br /&gt;
 mkdir bin lib64&lt;br /&gt;
 SH=$(which sh)&lt;br /&gt;
 cp $SH bin&lt;br /&gt;
 cp $(ldd $SH | grep &amp;quot;/lib64&amp;quot; | sed 's/^.*\(\/lib64\S*\)\s.*$/\1/') lib64&lt;br /&gt;
 CAT=$(which cat)&lt;br /&gt;
 cp $CAT bin&lt;br /&gt;
 cp $(ldd $CAT | grep &amp;quot;/lib64&amp;quot; | sed 's/^.*\(\/lib64\S*\)\s.*$/\1/') lib64&lt;br /&gt;
 PATH=$PATH:/bin&lt;br /&gt;
 chroot . sh&lt;br /&gt;
 cat /proc/$$/mountinfo&lt;br /&gt;
 # 843 841 0:63 / / rw,relatime - tmpfs tmpfs-root rw&lt;br /&gt;
 # 861 843 0:62 / /external_sharing rw,relatime shared:290 - tmpfs tmpfs-external rw&lt;br /&gt;
 # 898 843 0:62 / /internal_sharing rw,relatime shared:349 - tmpfs tmpfs-external rw&lt;br /&gt;
 # 899 843 0:5 / /proc rw,nosuid,nodev,noexec,relatime - proc proc rw&lt;br /&gt;
&lt;br /&gt;
Mounts 812 (on the host) and 861 (in a container) have the same sharing (shared group) - external sharing and mount 898 has it's own local shared group - internal sharing.&lt;br /&gt;
&lt;br /&gt;
Before [https://github.com/checkpoint-restore/criu/pull/906 #906] we were detecting this external/internal sharing state for auto-detected external mounts only, but we need it for manual external mounts too. Moreover, this also applies to manual external slave mounts they can be external/internal slaves too.&lt;br /&gt;
&lt;br /&gt;
So we detect that the mount is from external sharing if in mount namespace of CRIU there are mounts of the same shared group and also we detect that the mount is from external slavery if there is no master mount for it in CT mount namespaces.&lt;br /&gt;
&lt;br /&gt;
== Old days ==&lt;br /&gt;
&lt;br /&gt;
For now the same behavior is configured with the &amp;lt;code&amp;gt;--ext-mount-map KEY:VAL&amp;lt;/code&amp;gt; option. Soon this option will be [[deprecation|deprecated]].&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]]&lt;br /&gt;
[[Category:External]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=News/events&amp;diff=5034</id>
		<title>News/events</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=News/events&amp;diff=5034"/>
		<updated>2020-03-12T06:54:33Z</updated>

		<summary type="html">&lt;p&gt;Kir: added br, removed vertical whitespace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt; __NOTOC__&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
   This page is&lt;br /&gt;
   1. used directly (i.e. one can view it);&lt;br /&gt;
   2. included into some other pages;&lt;br /&gt;
   3. exported via RSS.&lt;br /&gt;
   Because of that, extreme care should be taken when modifying it.&lt;br /&gt;
&lt;br /&gt;
   PLEASE MAKE SURE MOST RECENT EVENTS GO FIRST&lt;br /&gt;
&lt;br /&gt;
   --kir&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page collects into about events criu takes part in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;startFeed/&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
== FOSDEM 2020 ==&lt;br /&gt;
[[Image:Fosdem.png|left|100px|link=]]&lt;br /&gt;
&lt;br /&gt;
'''Feburary 1, 2020, Brussels, Belgium'''&lt;br /&gt;
&lt;br /&gt;
[https://fosdem.org/2020/schedule/event/containers_live_migration/ Container Live Migration]&lt;br /&gt;
&lt;br /&gt;
--[[User:Rppt]] 19:22, 28 February 2020‎ (UTC)&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Linux Plumbers Conference 2019 ==&lt;br /&gt;
[[Image:Linuxplumbers.png|left|100px|link=]]&lt;br /&gt;
&lt;br /&gt;
'''September 9-11, Lisbon, Portugal'''&lt;br /&gt;
&lt;br /&gt;
[https://linuxplumbersconf.org/event/4/contributions/508/ Update on Task Migration at Google Using CRIU]&lt;br /&gt;
&lt;br /&gt;
[https://linuxplumbersconf.org/event/4/contributions/472/ CRIU and the PID dance]&lt;br /&gt;
&lt;br /&gt;
[https://linuxplumbersconf.org/event/4/contributions/513/ CRIU: Reworking vDSO proxification, syscall restart]&lt;br /&gt;
&lt;br /&gt;
[https://linuxplumbersconf.org/event/4/contributions/478/ Secure Image-less Container Migration]&lt;br /&gt;
&lt;br /&gt;
--[[User:Avagin]] 14:05, 23 Aug 2019 (UTC)&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Google Summer of Code 2019 ==&lt;br /&gt;
[[Image:gsoc.png|left|100px|link=]]&lt;br /&gt;
&lt;br /&gt;
'''Mar-Sep 2019'''&lt;br /&gt;
&lt;br /&gt;
[https://summerofcode.withgoogle.com/organizations/6333591376625664/ Google Summer of Code]&lt;br /&gt;
&lt;br /&gt;
--[[User:Avagin]] 21:32, 26 Feb 2019 (PST) &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&amp;lt;endFeed/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[News/events/past|Past events]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=News/events&amp;diff=5033</id>
		<title>News/events</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=News/events&amp;diff=5033"/>
		<updated>2020-03-12T06:53:12Z</updated>

		<summary type="html">&lt;p&gt;Kir: signed the entry (Rppt: it is required so that RSS is properly generated with dates etc)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt; __NOTOC__&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
   This page is&lt;br /&gt;
   1. used directly (i.e. one can view it);&lt;br /&gt;
   2. included into some other pages;&lt;br /&gt;
   3. exported via RSS.&lt;br /&gt;
   Because of that, extreme care should be taken when modifying it.&lt;br /&gt;
&lt;br /&gt;
   PLEASE MAKE SURE MOST RECENT EVENTS GO FIRST&lt;br /&gt;
&lt;br /&gt;
   --kir&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page collects into about events criu takes part in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;startFeed/&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
== FOSDEM 2020 ==&lt;br /&gt;
[[Image:Fosdem.png|left|100px|link=]]&lt;br /&gt;
&lt;br /&gt;
'''Feburary 1, 2020, Brussels, Belgium'''&lt;br /&gt;
&lt;br /&gt;
[https://fosdem.org/2020/schedule/event/containers_live_migration/ Container Live Migration]&lt;br /&gt;
&lt;br /&gt;
--[[User:Rppt]] 19:22, 28 February 2020‎ (UTC)&lt;br /&gt;
&lt;br /&gt;
== Linux Plumbers Conference 2019 ==&lt;br /&gt;
[[Image:Linuxplumbers.png|left|100px|link=]]&lt;br /&gt;
&lt;br /&gt;
'''September 9-11, Lisbon, Portugal'''&lt;br /&gt;
&lt;br /&gt;
[https://linuxplumbersconf.org/event/4/contributions/508/ Update on Task Migration at Google Using CRIU]&lt;br /&gt;
&lt;br /&gt;
[https://linuxplumbersconf.org/event/4/contributions/472/ CRIU and the PID dance]&lt;br /&gt;
&lt;br /&gt;
[https://linuxplumbersconf.org/event/4/contributions/513/ CRIU: Reworking vDSO proxification, syscall restart]&lt;br /&gt;
&lt;br /&gt;
[https://linuxplumbersconf.org/event/4/contributions/478/ Secure Image-less Container Migration]&lt;br /&gt;
&lt;br /&gt;
--[[User:Avagin]] 14:05, 23 Aug 2019 (UTC)&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Google Summer of Code 2019 ==&lt;br /&gt;
[[Image:gsoc.png|left|100px|link=]]&lt;br /&gt;
&lt;br /&gt;
'''Mar-Sep 2019'''&lt;br /&gt;
&lt;br /&gt;
[https://summerofcode.withgoogle.com/organizations/6333591376625664/ Google Summer of Code]&lt;br /&gt;
&lt;br /&gt;
--[[User:Avagin]] 21:32, 26 Feb 2019 (PST) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&amp;lt;endFeed/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[News/events/past|Past events]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
	<entry>
		<id>https://criu.org/index.php?title=CLI/opt/--cgroup-yard&amp;diff=5011</id>
		<title>CLI/opt/--cgroup-yard</title>
		<link rel="alternate" type="text/html" href="https://criu.org/index.php?title=CLI/opt/--cgroup-yard&amp;diff=5011"/>
		<updated>2020-02-05T22:53:42Z</updated>

		<summary type="html">&lt;p&gt;Kir: redirect to a specific option description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT:[[CGroups#External_CGroup_yard]]&lt;/div&gt;</summary>
		<author><name>Kir</name></author>
	</entry>
</feed>