(Linux® x86, Linux on POWER® (Little Endian), Linux on AArch64, and Linux on IBM Z® only)
This option specifies whether the JIT and AOT compilers generate nonportable compiled code on restore.
- This option takes effect only when
- When you disable this option,
- By default,
CRIUSECProvideris the only security provider in both checkpoint and restore. But, if
CRIUSECProvideris disabled with the
-XX:-CRIUSecProvideroption, then the existing security providers are used during the checkpoint phase and restore phase. You can use any algorithm in the existing providers.
- JITServer technology is disabled both before you take a checkpoint and after you restore the VM.
- the VM generates only portable code, both before you take a checkpoint and after you restore the VM.
- By default,
The JIT compiler can use hardware features of the system on which it is running to generate compiled code. That code might therefore fail if it is included in a checkpoint image that you later restore on a different system. For example, the compiled code might try to use a hardware feature that doesn't exist on the new machine, then fail. To avoid this problem, the JIT compiler by default generates code that uses only basic hardware features, therefore portable to different systems.
-XX:+CRIURestoreNonPortableMode option is set by default so that on restore the JIT compiler can start generating nonportable compiled code. Likewise, the VM can also load nonportable AOT code post-restore. Generating nonportable compiled code also means that no further checkpoints are permitted. Only a single checkpoint can be taken in the VM's lifetime.
If you require multiple checkpoints, you can use the
-XX:-CRIURestoreNonPortableMode option to generate portable JIT compiled code after restore.