| 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 === |