-
Notifications
You must be signed in to change notification settings - Fork 737
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
Track JIT body invalidation reasons as bit flags #21050
Conversation
...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.
This will need a coordinated merge with eclipse-omr/omr#7635 |
@dsouzai, could you please review? |
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.
Overall LGTM, I just had one question.
jenkins test sanity.functional all jdk8,jdk21 depends eclipse-omr/omr#7635 |
the windows builds have two errors; the first is
which looks to be #19678. The other seems to be an infra issue:
|
Will wait until https://openj9-jenkins.osuosl.org/job/Pipeline-OMR-Acceptance/824/ competes before initiating the coordinated merge. |
I've promoted the OMR change. |
...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.