Skip to content
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

Track JIT body invalidation reasons as bit flags #21050

Merged

Conversation

jdmpapin
Copy link
Contributor

...and specify the reason whenever we invalidate a JIT body.

Post-restore exclusion was already specially distinguished by a flag in TR_PersistentMethodInfo.

Preexistence invalidation should also have been similarly distinguished, but the logic to avoid making new preexistence assumptions has been treating all invalidations as potentially preexistence-related.

This change is in preparation to add a new invalidation reason: the unloading of an inlined method. It will be important to know when a method has had a JIT body invalidated due to unloading so that when recompiling, inlining can be restricted to avoid repeated invalidation.

...and specify the reason whenever we invalidate a JIT body.

Post-restore exclusion was already specially distinguished by a flag in
TR_PersistentMethodInfo.

Preexistence invalidation should also have been similarly distinguished,
but the logic to avoid making new preexistence assumptions has been
treating all invalidations as potentially preexistence-related.

This change is in preparation to add a new invalidation reason: the
unloading of an inlined method. It will be important to know when a
method has had a JIT body invalidated due to unloading so that when
recompiling, inlining can be restricted to avoid repeated invalidation.
@jdmpapin
Copy link
Contributor Author

This will need a coordinated merge with eclipse-omr/omr#7635

@jdmpapin
Copy link
Contributor Author

@dsouzai, could you please review?

Copy link
Contributor

@dsouzai dsouzai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM, I just had one question.

@dsouzai dsouzai self-assigned this Feb 3, 2025
@dsouzai
Copy link
Contributor

dsouzai commented Feb 3, 2025

jenkins test sanity.functional all jdk8,jdk21 depends eclipse-omr/omr#7635

@dsouzai
Copy link
Contributor

dsouzai commented Feb 4, 2025

the windows builds have two errors; the first is

[2025-02-04T00:25:53.030Z] Testing: decomp002
[2025-02-04T00:25:53.030Z] Test start time: 2025/02/03 19:25:52 Eastern Standard Time
[2025-02-04T00:25:53.030Z] Running command: "C:/Users/jenkins/workspace/Test_openjdk8_j9_sanity.functional_x86-64_windows_Personal_testList_0/jdkbinary/j2sdk-image\\bin\\java"  -Xgcpolicy:gencon -Xjit:enableOSR,count=0  -Xdump -Xgcthreads1  -Xdump:system:events=abort  -agentlib:jvmtitest=test:decomp002 -cp "C:/Users/jenkins/workspace/Test_openjdk8_j9_sanity.functional_x86-64_windows_Personal_testList_0/aqa-tests///..//jvmtest\functional\cmdLineTests\jvmtitests\jvmtitest.jar" com.ibm.jvmti.tests.util.TestRunner
[2025-02-04T00:25:53.030Z] Time spent starting: 15 milliseconds
[2025-02-04T00:36:07.498Z] ***[TEST INFO 2025/02/03 19:35:52] ProcessKiller detected a timeout after 600000 milliseconds!***
[2025-02-04T00:36:07.498Z] INFO: getPID() has failed. 'Debug on timeout' is currently only supported on Linux.
[2025-02-04T00:36:07.498Z] ***[TEST INFO 2025/02/03 19:35:52] ProcessKiller destroy test process after timeout***
[2025-02-04T00:36:07.498Z] Output from test:
[2025-02-04T00:36:07.498Z]  [OUT] *** Testing [1/1]:	testStepping
[2025-02-04T00:36:07.498Z] Time spent executing: 600078 milliseconds
[2025-02-04T00:36:07.498Z] Test result: FAILED
[2025-02-04T00:36:07.498Z] Output from test:
[2025-02-04T00:36:07.498Z] 
[2025-02-04T00:36:07.498Z] Testing: decomp002-OSRFV
[2025-02-04T00:36:07.498Z] Test start time: 2025/02/03 19:35:52 Eastern Standard Time
[2025-02-04T00:36:07.498Z] Running command: "C:/Users/jenkins/workspace/Test_openjdk8_j9_sanity.functional_x86-64_windows_Personal_testList_0/jdkbinary/j2sdk-image\\bin\\java"  -Xgcpolicy:gencon -Xjit:enableOSR,count=0  -Xdump -Xgcthreads1  -XX:+OSRSafePointFV -Xdump:system:events=abort  -agentlib:jvmtitest=test:decomp002 -cp "C:/Users/jenkins/workspace/Test_openjdk8_j9_sanity.functional_x86-64_windows_Personal_testList_0/aqa-tests///..//jvmtest\functional\cmdLineTests\jvmtitests\jvmtitest.jar" com.ibm.jvmti.tests.util.TestRunner
[2025-02-04T00:36:07.498Z] Time spent starting: 0 milliseconds
[2025-02-04T00:45:56.216Z] ***[TEST INFO 2025/02/03 19:45:52] ProcessKiller detected a timeout after 600000 milliseconds!***
[2025-02-04T00:45:56.216Z] INFO: getPID() has failed. 'Debug on timeout' is currently only supported on Linux.
[2025-02-04T00:45:56.216Z] ***[TEST INFO 2025/02/03 19:45:52] ProcessKiller destroy test process after timeout***
[2025-02-04T00:45:56.216Z] Output from test:
[2025-02-04T00:45:56.216Z]  [OUT] *** Testing [1/1]:	testStepping
[2025-02-04T00:45:56.216Z] Time spent executing: 600437 milliseconds
[2025-02-04T00:45:56.216Z] Test result: FAILED
[2025-02-04T00:45:56.216Z] Output from test:

which looks to be #19678.

The other seems to be an infra issue:

[2025-02-04T00:10:35.083Z] Test result: FAILED
[2025-02-04T00:10:35.083Z] Output from test:
[2025-02-04T00:10:35.083Z]  [OUT] Crypto test COMPLETED
[2025-02-04T00:10:35.083Z]  [OUT] Attempting to load library bundled with JDK from: F:\Users\jenkins\workspace\Test_openjdk8_j9_sanity.functional_x86-32_windows_Personal_testList_0\jdkbinary\j2sdk-image\jre\bin\
[2025-02-04T00:10:35.083Z]  [OUT] 	Attempting to load: libcrypto-3-x64.dll
[2025-02-04T00:10:35.083Z]  [OUT] 	Attempting to load: libcrypto-1_1-x64.dll
[2025-02-04T00:10:35.083Z]  [OUT] 	Attempting to load: libeay32.dll
[2025-02-04T00:10:35.083Z]  [OUT] Attempting to load libname from OS: libcrypto-3-x64.dll
[2025-02-04T00:10:35.083Z]  [OUT] Attempting to load libname from OS: libcrypto-1_1-x64.dll
[2025-02-04T00:10:35.083Z]  [OUT] Attempting to load libname from OS: libeay32.dll
[2025-02-04T00:10:35.083Z]  [ERR] The jdk.native.openssl.lib property is not set.
[2025-02-04T00:10:35.083Z]  [ERR] FAILED TO LOAD OPENSSL CRYPTO LIBRARY
[2025-02-04T00:10:35.083Z]  [ERR] Warning: Native crypto library load failed. Using Java crypto implementation.
[2025-02-04T00:10:35.083Z]  [ERR] Warning: Native crypto library load failed. Using Java crypto implementation.
[2025-02-04T00:10:35.083Z]  [ERR] Warning: Native crypto library load failed. Using Java crypto implementation.
[2025-02-04T00:10:35.083Z]  [ERR] Warning: Native crypto library load failed. Using Java crypto implementation.
[2025-02-04T00:10:35.083Z]  [ERR] Warning: Native crypto library load failed. Using Java crypto implementation.
[2025-02-04T00:10:35.083Z]  [ERR] Warning: Native crypto library load failed. Using Java crypto implementation.

@dsouzai
Copy link
Contributor

dsouzai commented Feb 4, 2025

Will wait until https://openj9-jenkins.osuosl.org/job/Pipeline-OMR-Acceptance/824/ competes before initiating the coordinated merge.

@pshipton
Copy link
Member

pshipton commented Feb 4, 2025

I've promoted the OMR change.

@dsouzai dsouzai merged commit cb8c742 into eclipse-openj9:master Feb 4, 2025
32 of 35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants