Changes

753 bytes added ,  16:01, 16 January 2019
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 ===
62

edits