-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8333300: [JVMCI] add support for generational ZGC #19490
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 11 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 |
|
@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. |
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.
nmethod.cpp changes are fine.
ZGC changes have to be reviewed by GC group.
How you tested it to exercise new code (GenZGC + Graal)?
|
And it broke RISC build based on GHA failure for cross compilation. |
|
Testing of the combined Graal and JVMCI changes are in progress. I hit one main failure that I'm investigating and think I see the problem. I'll put it the combo all together for testing once I've got that resolved. |
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.
Great work. Looks good.
|
There was one fix I needed to include to use NativeAccess to read from the JVMCI handles when repacking them. It's only checking for null and not actually accessing the contents so it was benignly broken with singlegen ZGC. Generational ZGC includes new verify oop logic which was catching this. |
|
|
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.
Last version is good.
|
Thanks for all the reviews and input. I'm integrating this on Tom's behalf since he is on vacation. /integrate |
|
@dougxc Only the author (@tkrodriguez) is allowed to issue the |
|
Still good. |
|
Just note it still says |
|
I've tested against latest bits and everything was clean. Thanks for the reviews. /integrate |
|
Going to push as commit 187710e.
Your commit was automatically rebased without conflicts. |
|
@tkrodriguez Pushed as commit 187710e. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
|
Hi, please see: #19818 |
This exposes the required values for JVMCI to support generational ZGC. It includes a few things worth mentioning. JVMCI still exports XBarrierSetRuntime as fields in CompilerToVM::Data under the original name of ZBarrierSetRuntime. I have exported the XBarrierSetRuntime and ZBarrierSetRuntime functions as addresses under their actual name. This permits backward compatibility until all the required parts are in place. We can eventually delete the CompilerToVM::Data names.
I added ZBarrierSetRuntime::load_barrier_on_oop_array paralleling XBarrierSetRuntime::load_barrier_on_oop_array as we use that for a vector barrier. I could create the function as part of JVMCIRuntime if there are any concerns about including that in the ZGC core.
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/19490/head:pull/19490$ git checkout pull/19490Update a local copy of the PR:
$ git checkout pull/19490$ git pull https://git.openjdk.org/jdk.git pull/19490/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 19490View PR using the GUI difftool:
$ git pr show -t 19490Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/19490.diff
Webrev
Link to Webrev Comment