Line 1: |
Line 1: |
| == Summary == | | == Summary == |
| | | |
− | There are two moments of time when crtools runs in somewhat strange environment | + | There are two moments of time when criu runs in somewhat strange environment |
| | | |
| * Parasite code execution | | * Parasite code execution |
| * Restore of page dumped contents and yield rt-sigreturn to continue execution of the original program | | * Restore of page dumped contents and yield rt-sigreturn to continue execution of the original program |
| | | |
− | == Building PIE code blobs for crtools == | + | == Building PIE code blobs for criu == |
| | | |
| Parasite code executes in dumpee process context thus it needs to be [http://en.wikipedia.org/wiki/Position-independent_code PIE] | | Parasite code executes in dumpee process context thus it needs to be [http://en.wikipedia.org/wiki/Position-independent_code PIE] |
| compiled and to have own stack. The same applies to restorer code, which takes place at the very end of restore procedure. | | compiled and to have own stack. The same applies to restorer code, which takes place at the very end of restore procedure. |
| | | |
− | Thus we need to reserve stack place statically somewhere in crtools and use it at dump/checkpoint stages. To achieve | + | Thus we need to reserve stack place statically somewhere in criu and use it at dump/checkpoint stages. To achieve |
| this (and still have some human way to edit source code) we do the following tricks | | this (and still have some human way to edit source code) we do the following tricks |
| | | |
Line 35: |
Line 35: |
| }; | | }; |
| | | |
− | These headers we include in crtools compiled file and then use for checkpoint/restore. | + | These headers we include in criu compiled file and then use for checkpoint/restore. |
| | | |
| Generation of this files is done in several steps | | Generation of this files is done in several steps |