Skip to content

8255210: [Vector API] jdk/incubator/vector/Int256VectorTests.java crashes on AVX512 machines #791

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

Closed
wants to merge 1 commit into from

Conversation

DamonFool
Copy link
Member

@DamonFool DamonFool commented Oct 22, 2020

Hi all,

Please review the fix of an AVX512 crash for Vector API.
The reason is that reductionI in x86.ad didn't use legVec for code generation, which is required by Assembler::vphaddd.

Testing:

  • test/jdk/jdk/incubator/vector all passed on both AVX256 and AVX512 machines

Thanks.
Best regards,
Jie


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Testing

Linux x32 Linux x64 Windows x64 macOS x64
Build ✔️ (1/1 passed) ✔️ (5/5 passed) ✔️ (2/2 passed) ✔️ (2/2 passed)
Test (tier1) ✔️ (9/9 passed) ❌ (1/9 failed) ✔️ (9/9 passed)

Failed test task

Issue

  • JDK-8255210: [Vector API] jdk/incubator/vector/Int256VectorTests.java crashes on AVX512 machines

Reviewers

  • Paul Sandoz (@PaulSandoz - Reviewer)
  • sviswanathan - Committer ⚠️ Added manually
  • jbhateja - Committer ⚠️ Added manually

Download

$ git fetch https://git.openjdk.java.net/jdk pull/791/head:pull/791
$ git checkout pull/791

@bridgekeeper
Copy link

bridgekeeper bot commented Oct 22, 2020

👋 Welcome back jiefu! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@DamonFool
Copy link
Member Author

/issue add JDK-8255210
/test
/label add hotspot-compiler
/cc hotspot-compiler

@openjdk openjdk bot added the rfr Pull request is ready for review label Oct 22, 2020
@openjdk
Copy link

openjdk bot commented Oct 22, 2020

@DamonFool This issue is referenced in the PR title - it will now be updated.

@openjdk openjdk bot added the hotspot-compiler hotspot-compiler-dev@openjdk.org label Oct 22, 2020
@openjdk
Copy link

openjdk bot commented Oct 22, 2020

@DamonFool
The hotspot-compiler label was successfully added.

@openjdk
Copy link

openjdk bot commented Oct 22, 2020

@DamonFool The hotspot-compiler label was already applied.

@mlbridge
Copy link

mlbridge bot commented Oct 22, 2020

Webrevs

@DamonFool
Copy link
Member Author

/test

@openjdk
Copy link

openjdk bot commented Oct 22, 2020

@DamonFool you need to get approval to run the tests in tier1 for commits up until ca83af3

@openjdk openjdk bot added the test-request label Oct 22, 2020
@DamonFool
Copy link
Member Author

Hi @DamonFool , similar problem also exists for reduction patterns for other primitive types (Long/Float/Double).

Hi @jatin-bhateja ,

Thanks for your reminder.

I've also noticed these problems.
But I don't have a reproducer right now.
And I need some time to construct one.

So I plan to file another bug to fix them when the reproducer is ready.

Thanks.

Copy link
Member

@PaulSandoz PaulSandoz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM based on same changes made previously for short vectors.
Good if Sandhya (@sviswa7) et. al. can review also.

@openjdk
Copy link

openjdk bot commented Oct 22, 2020

@DamonFool 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:

8255210: [Vector API] jdk/incubator/vector/Int256VectorTests.java crashes on AVX512 machines

Reviewed-by: psandoz, sviswanathan, jbhateja

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 14 new commits pushed to the master branch:

  • d8d9197: 8242559: Clean the "libawt_xawt" library from code for headless mode
  • ff5f226: 8255086: Update the root locale display names
  • 8afdcae: 8255031: Update java/util/prefs/AddNodeChangeListener.java to report more failure info
  • 0aa3c92: 8255262: Remove use of legacy custom @SPEC tag
  • a0b687b: 8254854: [cgroups v1] Metric limits not properly detected on some join controller combinations
  • f279ddf: 8248411: [aarch64] Insufficient error handling when CodeBuffer is exhausted
  • 4634dbe: 8223312: Utilize handshakes instead of is_thread_fully_suspended
  • cc50c8d: 8255196: Remove unused G1FullGCCompactionPoint::merge()
  • ae72b52: 8255047: Add HotSpot UseDebuggerErgo flags
  • 211bb62: 8255124: KeepAliveStreamCleaner may crash with java.lang.IllegalMonitorStateException: current thread is not owner
  • ... and 4 more: https://git.openjdk.java.net/jdk/compare/5d262290c4994575cbaa76ea58d08e22c3381df8...master

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.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Oct 22, 2020
@sviswa7
Copy link

sviswa7 commented Oct 22, 2020

The fix looks good to me as well.

@jatin-bhateja
Copy link
Member

Hi @DamonFool , similar problem also exists for reduction patterns for other primitive types (Long/Float/Double).

Hi @jatin-bhateja ,

Thanks for your reminder.

I've also noticed these problems.
But I don't have a reproducer right now.
And I need some time to construct one.

So I plan to file another bug to fix them when the reproducer is ready.

Thanks.

Sure , this fix looks good.

@DamonFool
Copy link
Member Author

/reviewer credit @sviswa7 , @jatin-bhateja

@openjdk
Copy link

openjdk bot commented Oct 23, 2020

@DamonFool
Reviewer sviswanathan successfully credited.

Reviewer jbhateja successfully credited.

@DamonFool
Copy link
Member Author

Thanks @PaulSandoz , @sviswa7 and @jatin-bhateja for your review.
Will push it later.

@DamonFool
Copy link
Member Author

/integrate

@openjdk openjdk bot closed this Oct 23, 2020
@openjdk openjdk bot added integrated Pull request has been integrated and removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Oct 23, 2020
@DamonFool DamonFool deleted the JDK-8255210 branch October 23, 2020 05:51
@openjdk
Copy link

openjdk bot commented Oct 23, 2020

@DamonFool Since your change was applied there have been 15 commits pushed to the master branch:

  • 2ca7a08: 8255268: 32-bit failures in runtime/Metaspace/elastic
  • d8d9197: 8242559: Clean the "libawt_xawt" library from code for headless mode
  • ff5f226: 8255086: Update the root locale display names
  • 8afdcae: 8255031: Update java/util/prefs/AddNodeChangeListener.java to report more failure info
  • 0aa3c92: 8255262: Remove use of legacy custom @SPEC tag
  • a0b687b: 8254854: [cgroups v1] Metric limits not properly detected on some join controller combinations
  • f279ddf: 8248411: [aarch64] Insufficient error handling when CodeBuffer is exhausted
  • 4634dbe: 8223312: Utilize handshakes instead of is_thread_fully_suspended
  • cc50c8d: 8255196: Remove unused G1FullGCCompactionPoint::merge()
  • ae72b52: 8255047: Add HotSpot UseDebuggerErgo flags
  • ... and 5 more: https://git.openjdk.java.net/jdk/compare/5d262290c4994575cbaa76ea58d08e22c3381df8...master

Your commit was automatically rebased without conflicts.

Pushed as commit a824781.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

predicate(vector_element_basic_type(n->in(2)) == T_INT &&
vector_length(n->in(2)) < 16); // src2
vector_length(n->in(2)) <= 16); // src2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FTR since reduction16I is gone, vector length check becomes redundant: reductionI successfully covers the whole range of vectors of int.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch!

The same case with reductionS.

I'll fix it next time.
Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotspot-compiler hotspot-compiler-dev@openjdk.org integrated Pull request has been integrated test-request
Development

Successfully merging this pull request may close these issues.

5 participants