-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
8265907: JVM crashes when matching VectorMaskCmp Node #3670
Conversation
👋 Welcome back whuang! A progress list of the required criteria for merging this PR into |
/contributor add Wang Huang whuang@openjdk.org |
@Wanghuang-Huawei |
@Wanghuang-Huawei |
@Wanghuang-Huawei 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. |
Webrevs
|
case Op_VectorMaskCmp: | ||
if (vlen < 2 || bit_size < 64) { | ||
return false; | ||
} | ||
break; |
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.
Hmm, currently min_vector_size for byte type is lower to 4 bytes to support vector api shuffle, but we don't have a per Opcode size check correctly. E.g. no length check for reduce_add8B, do you also see any issue for that? I think we'd better only allow 4 bytes for vector api shuffle related opcodes (and 2 for mask related opcodes) in match_rule_supported_vector, while for other opcodes, we still only support for >=64 bits.
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.
Hmm, currently min_vector_size for byte type is lower to 4 bytes to support vector api shuffle, but we don't have a per Opcode size check correctly. E.g. no length check for reduce_add8B, do you also see any issue for that?
Since SLP does not support subword reduction, I think current match rules are fine. AArch64 part looks good to me.
a193ff0
to
44b255c
Compare
src/hotspot/cpu/x86/x86.ad
Outdated
case Op_VectorMaskCmp: | ||
if (vlen < 2 || size_in_bits < 64) { | ||
return false; | ||
} | ||
break; |
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.
Did you also see the crash on x86?
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.
Yes, this bug effects x86.
@Wanghuang-Huawei This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration! |
@jatin-bhateja and @sviswa7 could you review this for x86? |
Hi @Wanghuang-Huawei , Please let me know if its ok to integrate following changes in your patch.
|
Hi @Wanghuang-Huawei , I have updated the proposed fix. |
Thank you for your suggestion. I think your codes can solve the x86's problem here. I will add it to my next push. |
x86 changes look good to me. |
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.
@Wanghuang-Huawei Are you planning to proceed with this? x86 changes are good. You will need an approval from aarch64 side. Please do a rebase to latest.
@Wanghuang-Huawei this pull request can not be integrated into git checkout JDK-8265907
git fetch https://git.openjdk.java.net/jdk master
git merge FETCH_HEAD
# resolve conflicts and follow the instructions given by git merge
git commit -m "Merge master"
git push |
OK. I will rebase & solve the conflict. Thank you. |
@Wanghuang-Huawei 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 64 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. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@sviswa7, @nsjian, @jatin-bhateja) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
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.
AArch64 change looks good to me (not a Reviewer).
@Wanghuang-Huawei Could you please submit this fix versus JDK17 repo which forked today? |
OK. I will submit it. |
/integrate |
@Wanghuang-Huawei |
@theRealAph Could you do me a favor to review this patch? |
I think this should go to https://github.com/openjdk/jdk17? |
@nsjian yes, withdraw this PR and redo it for https://github.com/openjdk/jdk17 |
@Wanghuang-Huawei Could you please create the PR in jdk17 and withdraw this as suggested by @PaulSandoz ? |
@nsjian @PaulSandoz I will recommit this patch to jdk17 soon. |
This PR can be closed now. |
Progress
Issue
Reviewers
Contributors
<whuang@openjdk.org>
<aijiaming1@huawei.com>
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/3670/head:pull/3670
$ git checkout pull/3670
Update a local copy of the PR:
$ git checkout pull/3670
$ git pull https://git.openjdk.java.net/jdk pull/3670/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 3670
View PR using the GUI difftool:
$ git pr show -t 3670
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/3670.diff