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