Cpuinfo
Because CRIU allows to live migrate containers (see live migration for details), it might happen that CPU a container has been ran on differs from the target CPU. For most software this is usually not a problem, but if a program is compiled with optimizations involving a particular CPU feature (say, AVX instruction), the lack of the feature on a destination machine will lead to execution exception in a best case scenario.
Therefore there should be a way to test if destination machine is capable of running container to be migrated. This is the purpose of cpuinfo
command.
Saving CPU capabilities into an image file
CRIU does not write CPU capabilities into an image by default (for the sake of speed). Instead, one have to run CRIU as:
criu cpuinfo dump
The command creates a cpuinfo image file, containing information about the current CPU and some bits representing the supported capabilities.
Testing CPU capabilities
To check if the capabilities saved in cpuinfo image file are matching those of the current CPU, one should run:
criu cpuinfo check
Checkpoint/Restore with CPU capabilities
While by default CRIU does not save CPU capabilities in image file, one can pass --cpu-cap
option to force CRIU to save and check CPU capabilities on dump and restore accordingly.