Skip to content
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

8322732: ForkJoinPool may underutilize cores in async mode #19131

Closed
wants to merge 51 commits into from

Conversation

DougLea
Copy link
Contributor

@DougLea DougLea commented May 7, 2024

This set of changes address causes of poor utilization with small numbers of cores due to overly aggressive contention avoidance. A number of further adjustments were needed to still avoid most contention effects in deployments with large numbers of cores


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issues

  • JDK-8322732: ForkJoinPool may underutilize cores in async mode (Bug - P4)
  • JDK-8327854: Test java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpStatefulTest.java failed with RuntimeException (Bug - P4)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/19131/head:pull/19131
$ git checkout pull/19131

Update a local copy of the PR:
$ git checkout pull/19131
$ git pull https://git.openjdk.org/jdk.git pull/19131/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 19131

View PR using the GUI difftool:
$ git pr show -t 19131

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/19131.diff

Webrev

Link to Webrev Comment

Copy link
Contributor

@AlanBateman AlanBateman left a comment

Choose a reason for hiding this comment

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

Viktor (mostly) and I have been testing and reviewing these changes at each iteration. I think we are happy with where things are at, significantly very positive in some of the streams/gatherer tests. The Starvation test is the canary to catch a scenario that has been observed along the way, but not with the current version. So I think this is good to integrate.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Jun 5, 2024
@viktorklang-ora
Copy link
Contributor

Seconding @AlanBateman, I've reviewed and provided feedback on this PR multiple times, and have had numerous runs of parallel streams / gatherers and I think this is good to go. If I was a reviewer my vote would matter, but I'm adding this comment here as an "enthusiastic supporter". :)

@DougLea
Copy link
Contributor Author

DougLea commented Jun 5, 2024

/issue JDK-8327854

@openjdk
Copy link

openjdk bot commented Jun 5, 2024

@DougLea
Adding additional issue to issue list: 8327854: Test java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpStatefulTest.java failed with RuntimeException.

@DougLea
Copy link
Contributor Author

DougLea commented Jun 5, 2024

/integrate

@openjdk
Copy link

openjdk bot commented Jun 5, 2024

Going to push as commit 789f704.
Since your change was applied there have been 74 commits pushed to the master branch:

  • 2c1b311: 8331854: ubsan: copy.hpp:218:10: runtime error: addition of unsigned offset to 0x7fc2b4024518 overflowed to 0x7fc2b4024510
  • 765ad0e: 8331947: Preview creates checkbox for JEP-less preview feature
  • 8e903ee: 8331896: JFR: Improve check for JDK classes
  • 3cbdf8d: 8333554: Parallel: Remove unused PSParallelCompact::is_in
  • 3944e67: 8312132: Add tracking of multiple address spaces in NMT
  • d0052c0: 8333326: Linux Alpine build fails after 8302744
  • 4369856: 8333130: MakeJAR2.sh uses hard-coded JDK version
  • 1f09467: 8327368: javac crash when computing exhaustiveness checks
  • 7dbd033: 8332499: Gtest codestrings.validate_vm fail on linux x64 when hsdis is present
  • 9db7c95: 8332750: Broken link in CatalogFeatures.html
  • ... and 64 more: https://git.openjdk.org/jdk/compare/7ab74c5f268dac82bbd36355acf8e4f3d357134c...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Jun 5, 2024
@openjdk openjdk bot closed this Jun 5, 2024
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Jun 5, 2024
@openjdk
Copy link

openjdk bot commented Jun 5, 2024

@DougLea Pushed as commit 789f704.

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

@DougLea DougLea deleted the JDK-8322732 branch June 5, 2024 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core-libs core-libs-dev@openjdk.org integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

4 participants