-
Notifications
You must be signed in to change notification settings - Fork 721
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support to disable JITServer and AOT post restore #16911
Conversation
Signed-off-by: Irwin D'Souza <[email protected]>
@mpirvu could you please review? |
Converting to draft so I can also add the change to support disabling the SCC post restore in this PR (to minimize the amount of double delivering needed before Friday). |
Signed-off-by: Irwin D'Souza <[email protected]>
@@ -261,6 +263,13 @@ J9::OptionsPostRestore::iterateOverExternalOptions() | |||
} | |||
break; | |||
|
|||
case J9::ExternalOptions::XShareclassesDisableOnRestore: | |||
{ | |||
if (FIND_ARG_IN_RESTORE_ARGS(OPTIONAL_LIST_MATCH, optString, 0) >= 0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At the moment, running with -Xshareclasses:disableOnRestore
will fail on restore (unless I change this to FIND_AND_CONSUME_RESTORE_ARG
). I'm expecting the VM to use the FIND_AND_CONSUME
variant when they process this option.
fyi @hangshao0
@mpirvu ready for review now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
I wonder if we should reverse the logic for JITServer: run in client mode before checkpoint (as we do now), but by default disable client-mode post restore, unless the user specifies -XX:+UseJITServer in which case we let the JVM in client mode.
This would be more in line with current behavior where the user has to opt-in to use JITServer.
jenkins test sanity all jdk17 |
It's something we can look into for post 0.38; I have a task in #16853 under the That said, I believe having JITServer enabled implicitly in Non-Portable mode was a deliberate decision, though it was made before we had the ability to specify options post-restore, so it could be something to revisit. @vijaysun-omr @ymanton what are your thoughts on Marius' suggestion (since you guys made the decision to implicitly enable JITServer). |
Yes I think the prior decision was driven by a desire to perhaps attempt a demo with both JIT server and CRIU support, but in a world where we were unable to specify new JVM command line options on the restore side. Now that that has changed, I agree that we could consider a different design. |
Since JITServer is enabled implicitly in Non Portable Mode, specifying
-XX:-UseJITServer
should disable it post-restore.Additionally, if
-Xshareclasses:disableOnRestore
is specified, disable AOT (see #16868).