-
Notifications
You must be signed in to change notification settings - Fork 5.8k
8299375: [PPC64] GetStackTraceSuspendedStressTest tries to deoptimize frame with invalid fp #12941
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
8299375: [PPC64] GetStackTraceSuspendedStressTest tries to deoptimize frame with invalid fp #12941
Conversation
👋 Welcome back rrich! A progress list of the required criteria for merging this PR into |
/label hotspot-compiler |
/label remove hotspot |
@reinrich |
@reinrich |
Webrevs
|
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.
This looks good. Seems like we should update Copyright years.
src/hotspot/cpu/ppc/frame_ppc.hpp
Outdated
@@ -379,6 +386,9 @@ | |||
int offset_fp() const { assert_offset(); return _offset_fp; } | |||
void set_offset_fp(int value) { assert_on_heap(); _offset_fp = value; } | |||
|
|||
// Mark a frame as not fully initialized |
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.
Maybe add a comment like "Must not be used for frames in the valid back chain."?
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.
Thanks for the feedback. I've added the comment and updated the Copyright years.
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.
Thanks!
@reinrich This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 137 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
/integrate |
Going to push as commit 9d518c5.
Your commit was automatically rebased without conflicts. |
Mark a frame as not fully initialized when copying it from a continuation StackChunk to the stack until the callers_sp (aka back link) is set.
This avoids the assertion given in the bug report when the copied frame is deoptimized before it is fully initialized.
IMHO the deoptimization at that point is a little questionable but it actually only changes the pc of the frame which can be done.
Note that the frame can get extended later (and metadata can get overridden) but there is code that handles this.
Testing: jdk_loom. The fix passed our CI testing. This includes most JCK and JTREG tiers 1-4, also in Xcomp mode, on the standard platforms and also on ppc64le.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk pull/12941/head:pull/12941
$ git checkout pull/12941
Update a local copy of the PR:
$ git checkout pull/12941
$ git pull https://git.openjdk.org/jdk pull/12941/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 12941
View PR using the GUI difftool:
$ git pr show -t 12941
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/12941.diff