Skip to content

(0.41) Introduce JVMPortableRestoreMode - #18263

Merged
pshipton merged 1 commit into
eclipse-openj9:v0.41.0-releasefrom
tajila:criu_3
Oct 11, 2023
Merged

(0.41) Introduce JVMPortableRestoreMode#18263
pshipton merged 1 commit into
eclipse-openj9:v0.41.0-releasefrom
tajila:criu_3

Conversation

@tajila

@tajila tajila commented Oct 11, 2023

Copy link
Copy Markdown
Contributor

Previously, the CRIURestoreNonPortableMode was used to determine if a checkpoint could be taken after restore. If CRIURestoreNonPortableMode was enabled (default mode) only a single checkpoint is allowed and the JVM doesn't need to generate portable code upon restore. This capability also allows the JVM to use standard security providers since there is no risk for that state to be serialized.

There is a need to separate out the portability capabilites and the behavioural changes that CRIURestoreNonPortableMode offers. There are cases where one wants portability as well as standard security capabilites for debugging purposes.

This PR separates out the portability capabilites and the behavioural aspects by providing an option that forces portability upon restore regardless of what CRIURestoreNonPortableMode is set to.

In the future we can add another option that forces portability in non-CRIU mode, it its desired.

Backport of #18252

@tajila
tajila requested a review from pshipton October 11, 2023 13:08
@tajila

tajila commented Oct 11, 2023

Copy link
Copy Markdown
Contributor Author

@ymanton Please add a comment once you've confirmed this addresses the issue

Comment thread runtime/compiler/net/CommunicationStream.hpp Outdated
Previously, the CRIURestoreNonPortableMode was used to determine if a
checkpoint could be taken after restore. If CRIURestoreNonPortableMode
was enabled (default mode) only a single checkpoint is allowed and the
JVM doesn't need to generate portable code upon restore. This capability
also allows the JVM to use standard security providers since there is no
risk for that state to be serialized.

There is a need to separate out the portability capabilites and the
behavioural changes that CRIURestoreNonPortableMode offers. There are
cases where one wants portability as well as standard security
capabilites for debugging purposes.

This PR separates out the portability capabilites and the behavioural
aspects by providing an option that forces portability upon restore
regardless of what CRIURestoreNonPortableMode is set to.

In the future we can add another option that forces portability in
non-CRIU mode, it its desired.

Signed-off-by: Tobi Ajila <atobia@ca.ibm.com>
@pshipton pshipton added comp:vm comp:jit criu Used to track CRIU snapshot related work labels Oct 11, 2023
@ymanton

ymanton commented Oct 11, 2023

Copy link
Copy Markdown
Member

@ymanton Please add a comment once you've confirmed this addresses the issue

Confirmed, -XX:+JVMPortableRestoreMode appears to fix the issue I was seeing on ppc64le when taking a checkpoint on Power 10 and restoring on Power 9.

@tajila

tajila commented Oct 11, 2023

Copy link
Copy Markdown
Contributor Author

Thanks Younes

@pshipton this can be merged now

@pshipton
pshipton merged commit 9c5799b into eclipse-openj9:v0.41.0-release Oct 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp:jit comp:vm criu Used to track CRIU snapshot related work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants