Line 8:
Line 8:
=== Post-copy for shared memory and hugetlbfs ===
=== Post-copy for shared memory and hugetlbfs ===
−
'''Summary:''' TODO: Short description of the project
+
'''Summary:''' extend post-copy memory restore and migration to support shared memory and hugeltbfs.
−
+
−
TODO: Detailed description of the project.
+
CRIU relies on [[Userfaultfd]] mechanism in the Linux kernel to implement the demand paging in userspace and allow post-copy memory (or lazy) [[Lazy_migration|migration]]. However, currently this support is limited to anonymous private memory mappings, although kernel also supports shared memory areas and hugetlbfs backed memory.
+
+
The shared memory support for lazy migration can be added to CRIU without kernel modifications, while proper handling of hugetlbfs would require userfaultfd callbacks for [http://man7.org/linux/man-pages/man2/fallocate.2.html fallocate(PUNCH_HOLE)] and [http://man7.org/linux/man-pages/man2/madvise.2.html madvise(MADV_REMOVE)] system calls.
'''Links:'''
'''Links:'''
−
* Wiki links to relevant material
+
* [https://www.kernel.org/doc/html/latest/admin-guide/mm/userfaultfd.html Userfaultfd]
−
* External links to mailing lists or web sites
+
* [https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html hugetlbfs]
−
'''Details:'''
'''Details:'''
−
* Skill level: beginner or intermediate or advanced
+
* Skill level: most probably advanced?
* Language: C
* Language: C
* Mentor: Mike Rapoport <rppt@linux.ibm.com>
* Mentor: Mike Rapoport <rppt@linux.ibm.com>
* Suggested by: Mike Rapoport <rppt@linux.ibm.com>
* Suggested by: Mike Rapoport <rppt@linux.ibm.com>
−
=== Optimize logging engine ===
=== Optimize logging engine ===