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
8284883: JVM crash: guarantee(sect->end() <= sect->limit()) failed: sanity on AVX512 #8457
Conversation
|
@dean-long 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
|
I think we should fix code in MacroAssembler::clear_mem()
to generate loop code (4 in loop and remaining after it) instead of line of instructions if more then 8 64-bytes move instructions are generated.
Even with 256 value, you suggested, there will be 32 instructions. Originally it was assumed that !is_large()
will be true for arrays with < InitArrayShortSize (64) so you will have only 8 instructions. But, as you said, InitArrayShortSize could be set to ridiculous value.
Also forcing use Mach instruction with value loaded into register may affect spilling in surrounding code.
@vnkozlov OK, good suggestion. Let me try that. |
@dean-long This change now passes all automated pre-integration checks. 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.
|
Hi @dean-long , We already have a loop to perform system initialization if is_large flag is set over ClearArray. Best Regards, |
Thanks Vladimir and Jatin! |
/integrate |
Going to push as commit cd8709e.
Your commit was automatically rebased without conflicts. |
@dean-long Pushed as commit cd8709e. |
This fix prevents overflowing the C2 scratch buffer for large ClearArray operations. I also noticed that when IdealizeClearArrayNode is turned off, the "is_large" flag on the ClearArray node was not set correctly, so I fixed that too.
I could use some help testing the x86_32 change.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/8457/head:pull/8457
$ git checkout pull/8457
Update a local copy of the PR:
$ git checkout pull/8457
$ git pull https://git.openjdk.java.net/jdk pull/8457/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 8457
View PR using the GUI difftool:
$ git pr show -t 8457
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/8457.diff