-XX:[+|-]CRIURestoreNonPortableMode

(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.

Restrictions:

Syntax

    -XX:[+|-]CRIURestoreNonPortableMode
Setting Effect Default
-XX:+CRIURestoreNonPortableMode Enable yes
-XX:-CRIURestoreNonPortableMode Disable

Explanation

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.

The -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.

See also