-
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
Update IProfiler to handle invokePrivateMethod #7697
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IProfiler already was aware of the initialVirtualMethod due to how the profiles are collected - the VM just writes the J9Method* that corresponds to the vtable index without doing additional processing. Previously, only the initialVirtualMethod would show up in that case. Now the invokePrivateMethod can as well and will more often with eclipse-openj9#7666, which stops doing the invokevirtual -> invokespecial mapping for private methods. Further improvements are needed to get profiling for the "real" method being called in the invokeprivate case but that will have to be done in a separate PR. As part of this, I've also modified jitGetJ9MethodUsingIndex() to consistently return NULL for the initial*Method and invokePrivateMethod cases. Though there is some very strange code in one case that I believe was, and still is, incorrect. fixes: eclipse-openj9#7696 Signed-off-by: Dan Heidinga <daniel_heidinga@ca.ibm.com>
DanHeidinga
commented
Nov 5, 2019
Signed-off-by: Dan Heidinga <daniel_heidinga@ca.ibm.com>
gacholio
reviewed
Nov 6, 2019
gacholio
reviewed
Nov 6, 2019
gacholio
reviewed
Nov 6, 2019
Signed-off-by: Dan Heidinga <daniel_heidinga@ca.ibm.com>
jenkins test sanity xlinux jdk8 |
gacholio
approved these changes
Nov 6, 2019
Opened #7711 to track making a proper API for detecting the VM special initial methods |
fjeremic
approved these changes
Nov 6, 2019
I notice the PR testing didn't include extended testing, which is the failing test suite. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
IProfiler already was aware of the initialVirtualMethod due to
how the profiles are collected - the VM just writes the J9Method*
that corresponds to the vtable index without doing additional
processing.
Previously, only the initialVirtualMethod would show up in that
case. Now the invokePrivateMethod can as well and will more
often with #7666, which stops doing the invokevirtual ->
invokespecial mapping for private methods.
Further improvements are needed to get profiling for the "real"
method being called in the invokeprivate case but that will
have to be done in a separate PR.
As part of this, I've also modified jitGetJ9MethodUsingIndex()
to consistently return NULL for the initial*Method and
invokePrivateMethod cases. Though there is some very strange
code in one case that I believe was, and still is, incorrect.
fixes: #7696
Signed-off-by: Dan Heidinga daniel_heidinga@ca.ibm.com