-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8338007: [JVMCI] ResolvedJavaMethod.reprofile can crash ciMethodData #21746
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
Conversation
|
👋 Welcome back never! A progress list of the required criteria for merging this PR into |
|
@tkrodriguez 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 no new commits pushed to the ➡️ To integrate this PR with the above commit message to the |
|
@tkrodriguez The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
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.
LGTM.
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.
Looks fine, just one question.
| temp._header._bits = (intptr_t)0; | ||
| temp._header._struct._tag = tag; | ||
| temp._header._struct._bci = bci; | ||
| _header = temp._header; // Write the cell atomtically |
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.
Should we use Atomic::store() here?
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.
I don't think it's necessary. It just needs to write the whole value once instead of performing 3 writes of differing sizes to the same cell. The value being written is always that same as the value that was already there from the original initialization. Maybe atomically is the wrong comment. Maybe Write the cell as an intptr_t unit?
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.
Good.
|
The automatic check failure seems to be a configuration problem with macos so that looks good. I reran the mach5 testing against latest master so it all looks good. Thanks for the reviews. /integrate |
|
Going to push as commit c12b386.
Your commit was automatically rebased without conflicts. |
|
@tkrodriguez Pushed as commit c12b386. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Graal unit testing uses ResolvedJavaMethod.reprofile to reset profiles between test but the current code rewrites the layout in a non-atomic way which can break other readers. Instead perform the reinitialization at a safepoint which should protect all readers from seeing any transient initialization states.
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/21746/head:pull/21746$ git checkout pull/21746Update a local copy of the PR:
$ git checkout pull/21746$ git pull https://git.openjdk.org/jdk.git pull/21746/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 21746View PR using the GUI difftool:
$ git pr show -t 21746Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/21746.diff
Using Webrev
Link to Webrev Comment