-
Notifications
You must be signed in to change notification settings - Fork 706
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
CRIU restore with -Xdump using CRIUSupport.registerRestoreOptionsFile() #16926
Conversation
@dsouzai could you please review JIT changes? |
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.
The JIT changes look fine; however I don't think they're needed. The change in J9Options.cpp
only executes once during startup, so it doesn't really impact anything post-restore. As for the change in VMJ9.cpp
, the call to ((*vmHooks)->J9HookDisable(vmHooks, J9HOOK_VM_EXCEPTION_CATCH) != 0);
essentially boils down to
if (HOOK_FLAGS(commonInterface, eventNum) & (J9HOOK_FLAG_RESERVED | J9HOOK_FLAG_HOOKED)) {
rc = -1;
}
in hookable.cpp
which is basically what you've added in the J9VM_OPT_CRIU_SUPPORT
guarded sections.
I think the calls to J9HookDisable
in the compiler to determine whether the hook is enabled should be cleaned up, but you don't need to bother with it in this PR; I'll open a PR to clean it all up.
Also, on a related note, is it possible for J9HOOK_FLAG_HOOKED
to be set but not J9HOOK_FLAG_RESERVED
?
Assuming the cleanup is to replace
J9HookRegisterWithCallSitePrivate always set |
Spoke to Jason offline. Turns out the compiler changes are required. The reason being that if pre-checkpoint no I'll open a PR to clean the JIT calls later, but for 0.38 the compiler changes ensure that we don't set the |
@JasonFengJ9 Please rebase your changes |
518147d
to
c605343
Compare
@tajila just rebased, please have a look. |
jenkins test sanity xlinux jdk17 |
jenkins compile win jdk8 |
jenkins test sanity xlinux jdk17 |
Added an internal JVM checkpoint hook criuRestoreInitializeDump() invoking criuReloadXDumpAgents() after CRIU restore; refactored configureDumpAgents() to handle both startup and CRIU restore scenarios; Not disable dump agent hooks within JIT for CRIU builds; Added a test to verify -Xdump:java:events=vmstop and -Xdump:java:events=throw,filter=java/lang/OutOfMemoryError,request=exclusive+prepwalk+serial+preempt. Signed-off-by: Jason Feng <fengj@ca.ibm.com>
@JasonFengJ9 please rebase |
@tajila just rebased |
jenkins test sanity xlinux jdk17 |
Only needed compile, will merge now |
@JasonFengJ9 please make a PR for 0.38 |
Added an internal JVM checkpoint hook
criuRestoreInitializeDump()
invokingcriuReloadXDumAgents()
after CRIU restore;Refactored
configureDumpAgents()
to handle both startup and CRIU restore scenarios;Not disable dump agent hooks within JIT for CRIU builds;
Added a test to verify
-Xdump:java:events=vmstop
and-Xdump:java:events=throw,filter=java/lang/OutOfMemoryError,request=exclusive+prepwalk+serial+preempt
.Signed-off-by: Jason Feng fengj@ca.ibm.com