Line 29: |
Line 29: |
| 1438 openat(4, "map-symlink", O_RDONLY) = 5 | | 1438 openat(4, "map-symlink", O_RDONLY) = 5 |
| 11 openat(AT_FDCWD, "/proc/$pid/map_files", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 | | 11 openat(AT_FDCWD, "/proc/$pid/map_files", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 |
− |
| |
− | === <code>parasite_fuxup_vdso</code> ===
| |
− |
| |
− | The 2nd longest routine. It takes ~ 0.07 seconds on dump.
| |
− |
| |
− | === Too many readlink-s ===
| |
− |
| |
− | Some files are readlinked 3-4 times in a row.
| |
− |
| |
| | | |
| == Restore == | | == Restore == |
Line 50: |
Line 41: |
| | | |
| * Reading images 1% | | * Reading images 1% |
− | * Mapping huuge premap area << 1% | + | * Mapping huge premap area << 1% |
| * (Re-)mapping sub-areas 73% | | * (Re-)mapping sub-areas 73% |
| * Filling area with data 26% | | * Filling area with data 26% |
Line 59: |
Line 50: |
| * Maping vma 15% | | * Maping vma 15% |
| | | |
− | === Parse maps instead of smaps ===
| |
| | | |
− | When parsing self maps for restorer hint, it's enough to read smaller /proc/self/maps | + | === Opening files for mappings === |
| + | |
| + | The <code>get_filemap_fd()</code> opens new fd every time. If a file is mapped several |
| + | times (e.g. -- a library) we can share one fd for that. |
| + | |
| + | === Staging === |
| + | |
| + | When restoring a single task CRIU uses [[stages of restoring]] which slows things down. Need either special-care the single task restore, or introduce fine-grained locking for such things. |
| + | |
| + | [[Category: Development]] |
| + | [[Category: Thinkers]] |