| Line 10: |
Line 10: |
| | | | |
| | Below is the list of issues found | | Below is the list of issues found |
| − |
| |
| − | == Images IO ==
| |
| − |
| |
| − | Too many write-s and read-s. Each small object issues a write/read request into file. Need to improve.
| |
| | | | |
| | == Dump == | | == Dump == |
| Line 33: |
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 54: |
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 63: |
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]] |