-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
8326957: Implement JEP 474: ZGC: Generational Mode by Default #18393
Conversation
👋 Welcome back aboldtch! A progress list of the required criteria for merging this PR into |
@xmas92 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 3 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
Added tag jdk-23+16 for changeset d580bcf
@xmas92 this pull request can not be integrated into git checkout JDK-8326957
git fetch https://git.openjdk.org/jdk.git master
git merge FETCH_HEAD
# resolve conflicts and follow the instructions given by git merge
git commit -m "Merge master"
git push |
Added tag jdk-23+17 for changeset 8efd7aa
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 good.
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 good. One nit in terminology, don't need to see the new version.
Added tag jdk-23+19 for changeset 706b421
Added tag jdk-23+21 for changeset e833bfc
Graal still doesn't support generational ZGC though I'm actively working on it. I'm hoping to have it in before rampdown but at least until that time JVMCI needs to default to non-generational ZGC. |
Great that you are working on support for Generational ZGC! The intent of this JEP is to make it so that you get Generational ZGC when you specify -XX:+UseZGC, and then warn that non-generational ZGC is deprecated and warn if the user explicitly turns it on. I don't want us to change the meaning of -XX:+UseZGC when the Graal JIT is enabled. Doing so would be inconsistent, cause confusion, and could be misleading to our users. In fact, we have already seen instances of a somewhat opposite problem. Today if you try to run Generational ZGC with the Graal JIT, you get Generational ZGC but revert back to using C2. We print a warning when that happens, but we have seen users not realizing that they ran C2 instead of the Graal JIT. My proposal is to simply refuse to start the JVM and print an error message when we have conflicting GC and JIT compiler flags. With this we would have:
With this we would both get rid of the confusing situation where the user asks for Graal JIT but get C2 and the other confusing situation where the user asks for Generational ZGC but gets non-generational ZGC. The user will have to make a decision on what combination they want to run. |
This is my proposal: For this JEP, I propose that we stick with the current plan that -XX:+UseZGC always mean Generational ZGC. If the user try to enable the Graal JIT when running Generational ZGC, we'll print a warning and switch over to C2, just like we're doing today. Then, as a follow-up, we can figure out what the correct behavior should be if the user specifies an incompatible GC and compiler combination. @tkrodriguez Is this an OK action plan for you? |
Sorry I didn't reply sooner. That sounds like a fine interim solution. I agree that automatically selecting something different can be very confusing. Anyway, hopefully this kind of problem will be a transient one. |
Thanks! |
After discussing with Tom offline, here's one more change you could make in this PR:
Either way, as soon we have Gen ZGC implemented for Graal, we will:
|
Thanks for the reviews. |
Going to push as commit 4ba7447.
Your commit was automatically rebased without conflicts. |
This is the implementation task for
JEP 474: ZGC: Generational Mode by Default
. See the JEP for details. JDK-8326667Progress
Issues
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/18393/head:pull/18393
$ git checkout pull/18393
Update a local copy of the PR:
$ git checkout pull/18393
$ git pull https://git.openjdk.org/jdk.git pull/18393/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 18393
View PR using the GUI difftool:
$ git pr show -t 18393
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/18393.diff
Webrev
Link to Webrev Comment