8347489: RISC-V: Misaligned memory access with COH#23053
8347489: RISC-V: Misaligned memory access with COH#23053RealFYang wants to merge 12 commits intoopenjdk:masterfrom
Conversation
|
👋 Welcome back fyang! A progress list of the required criteria for merging this PR into |
|
@RealFYang 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 2 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 |
|
@RealFYang The following label 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 list. If you would like to change these labels, use the /label pull request command. |
Hamlin-Li
left a comment
There was a problem hiding this comment.
Thanks for the patch.
Can you post the performance data in description?
And some minor comments.
d449fd1 to
2ff64eb
Compare
|
@Hamlin-Li |
Webrevs
|
Thank you posting the data! |
I guess the RVV is disabled by default? Will we also address the similar issue when RVV enabled? |
The purpose of using ParallelGC for the test is to minimize the GC noise. I have also updated SPECjbb2005 score under G1GC in PR description for reference. Note that SPECjbb2005 score means bops (business operations per second). I will update SPECjbb2015 later which has max and critical jops. Thanks. |
Yes. SBCs like Unmatched and P550 don't have RVV extensions. And I don't see such an issue with RVV code path for these intrinsics. |
Hamlin-Li
left a comment
There was a problem hiding this comment.
Looks good, thanks for updating.
Just one minor comment.
|
Thanks all for the review! |
|
Going to push as commit e91a6ec.
Your commit was automatically rebased without conflicts. |
|
@RealFYang Pushed as commit e91a6ec. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Hi, please consider this change.
We have different base_offset for T_BYTE/T_CHAR (4-byte instead of 8-byte aligned) with COH. This causes misaligned memory accesses for several instrinsics like String.Compare or String.Equals. The reason is that we assume 8-byte alignment and process one 8-byte word starting at the first array element for each iteration in the main loop. As a result, we have performance regressions on platforms with slow misaligned memory accesses like Unmatched and Premier P550 SBCs.
PS: Same issue is there even without COH. base_offset for T_BYTE/T_CHAR is 20 (thus 4-byte aligned) when
UseCompressedClassPointersis disabled in this case.Correctness test on linux-riscv64:
Performance test on Premier P550 (-XX:+AlwaysPreTouch -Xms8g -Xmx8g):
SPECjbb2005:
SPECjbb2015:
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/23053/head:pull/23053$ git checkout pull/23053Update a local copy of the PR:
$ git checkout pull/23053$ git pull https://git.openjdk.org/jdk.git pull/23053/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 23053View PR using the GUI difftool:
$ git pr show -t 23053Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/23053.diff
Using Webrev
Link to Webrev Comment