Optimize logging engine
- Mentors
- Pavel Emelyanov
- Organization
- CRIU
During the execution, CRIU writes many logs. Most of these logs are not used, but they are the only way to figure out the reason for failure if some operation fails.
CRIU's logging was done using printf statements. These printf family of functions takes a significant amount of time to execute. They scan the format string for the format specifiers are then typecast all the arguments to a string. It is observed that running criu with and without logging causes a considerable time difference.
Storing these raw format string as is in a file to be processed later saves a significant amount of CPU time during the process execution.