8383559: [lworld] Autobox cache removal causes performance regression with Renaissance benchmarks#2390
8383559: [lworld] Autobox cache removal causes performance regression with Renaissance benchmarks#2390TobiHartmann wants to merge 4 commits into
Conversation
|
👋 Welcome back thartmann! A progress list of the required criteria for merging this PR into |
|
@TobiHartmann 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 |
Webrevs
|
Arraying
left a comment
There was a problem hiding this comment.
The code changes look good overall, thanks! Maybe @matias9927 knows more about the AOT-specifics here and can weigh in as well.
I don't really have the expertise on specification to weigh in, but it seems like Victor has already pointed out some mistakes.
| assert cache.length == size; | ||
| } | ||
|
|
||
| private static Byte[] newCacheArray(int size) { |
There was a problem hiding this comment.
I don't think we need this - we should be able to revert to mainline code. The only code I think that need any update would be the old new Byte[size] should become (Byte[]) ValueClass.newReferenceArray(Byte.class, size) both with and without preview.
There was a problem hiding this comment.
new Byte[size] should become (Byte[]) ValueClass.newReferenceArray(Byte.class, size) both with and without preview.
@liach That's not possible because ValueClass.newReferenceArray throws when preview is disabled because boxes are identity classes then.
|
For JDK-8383894, I think we need to move the |
|
Thanks for the reviews! I've been working on https://git.openjdk.org/valhalla/pull/2406 which was blocking this PR and will get to this next week. |
Done. Maybe @kuksenko could verify that this solves JDK-8383894. |
|
/contributor add @iklam |
|
@TobiHartmann |
|
Thanks for the reviews! I addressed all comments and will re-run testing. |
| @@ -25,7 +25,6 @@ | |||
| /* | |||
| * @test | |||
| * @summary Test primitive box caches integrity in various scenarios (IntegerCache etc) | |||
| * @requires !java.enablePreview | |||
There was a problem hiding this comment.
Are we sure that there are no other tests that need their requires-clauses updated as a part of this change?
There was a problem hiding this comment.
I had a quick look and nothing else stood out. But I defer to people more familiar in this area.
|
If there are no strong objections, I propose to integrate this as is because some other work depends on it. I would leave it to the core-libs / CDS experts to follow-up with more cleanups. |
matias9927
left a comment
There was a problem hiding this comment.
CDS changes look good!
|
Thanks for the reviews. I'll wait for testing to all pass before integrating (probably only on Friday because Thursday is a public holiday here). |
|
/integrate |
|
Going to push as commit 50ed255.
Your commit was automatically rebased without conflicts. |
|
@TobiHartmann Pushed as commit 50ed255. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
To re-enable the autobox cache, this patch reverts (parts of) JDK-8369921, JDK-8378476, deopt parts of JDK-8378531 and JDK-8379148.
I had to modify the
newCacheArraymethods to return a non-flattened array to avoid buffering.I wasn't sure about the comments above the
valueOfmethods:b3ccb6a#diff-6136f7a80110ec00bf9a0b7da9943eb2fc33025ab400bc1f70153c1b2ac36993R146
Should they be reverted too? For now, I left them as is.
Thanks,
Tobias
Progress
Issue
Reviewers
Contributors
<iklam@openjdk.org>Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/valhalla.git pull/2390/head:pull/2390$ git checkout pull/2390Update a local copy of the PR:
$ git checkout pull/2390$ git pull https://git.openjdk.org/valhalla.git pull/2390/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 2390View PR using the GUI difftool:
$ git pr show -t 2390Using diff file
Download this PR as a diff file:
https://git.openjdk.org/valhalla/pull/2390.diff
Using Webrev
Link to Webrev Comment