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

8315937: Enable parallelism in vmTestbase/nsk/stress/numeric tests #15725

Conversation

roy-soumadipta
Copy link
Contributor

@roy-soumadipta roy-soumadipta commented Sep 13, 2023

'vmTestbase/nsk/stress/numeric' is a small and quick test suite. There seems to be no reason to run these tests exclusively. The tests themselves can be run as performance tests, but they are not executed as such in current configs. We should consider enabling parallelism for them and get improved test performance. Currently it is blocked by 'TEST.properties' with 'exclusiveAccess.dirs' directives in them.

Below are few metrics which shows around 10% improvement in fastdebug mode and around 5% improvement in release mode without any regression:

  • fastdebug_before : 72.78s user 20.76s system 272% cpu 34.337 total
  • fastdebug_after : 73.63s user 19.73s system 303% cpu 30.711 total
  • release_before : 33.42s user 19.42s system 241% cpu 21.898 total
  • release_after : 33.47s user 18.60s system 255% cpu 20.364 total

Progress

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

Issue

  • JDK-8315937: Enable parallelism in vmTestbase/nsk/stress/numeric tests (Enhancement - P4)

Reviewers

Reviewing

Using git

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

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

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 15725

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

Using diff file

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

Webrev

Link to Webrev Comment

'vmTestbase/nsk/stress/numeric' is a small and quick test suite. There seems to be no reason to run these tests exclusively. The tests themselves can be run as performance tests, but they are not executed as such in current configs. We should consider enabling parallelism for them and get improved test performance. Currently it is blocked by 'TEST.properties' with 'exclusiveAccess.dirs' directives in them.

Below are few metrics which shows around 10% improvement in fastdebug mode and around 5% improvement in release mode without any regression:

* fastdebug_before: **72.78s user 20.76s system 272% cpu 34.337 total**
* fastdebug_after : **73.63s user 19.73s system 303% cpu 30.711 total**
* release_before  : **33.42s user 19.42s system 241% cpu 21.898 total**
* release_after   : **33.47s user 18.60s system 255% cpu 20.364 total**
@bridgekeeper
Copy link

bridgekeeper bot commented Sep 13, 2023

👋 Welcome back roy-soumadipta! 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.

@shipilev
Copy link
Member

I think the larger improvement comes from the fact that we do not lose parallel VM workers waiting on these short tests, when larger tier4 suite is running. This looks good to me, but @lmesnik might want to give it a spin.

@openjdk openjdk bot changed the title 8315937: Enable parallelism in vmTestbase/nsk/stress/numeric test 8315937: Enable parallelism in vmTestbase/nsk/stress/numeric tests Sep 13, 2023
@openjdk openjdk bot added the rfr Pull request is ready for review label Sep 13, 2023
@openjdk
Copy link

openjdk bot commented Sep 13, 2023

@roy-soumadipta To determine the appropriate audience for reviewing this pull request, one or more labels corresponding to different subsystems will normally be applied automatically. However, no automatic labelling rule matches the changes in this pull request. In order to have an "RFR" email sent to the correct mailing list, you will need to add one or more applicable labels manually using the /label pull request command.

Applicable Labels
  • build
  • client
  • compiler
  • core-libs
  • graal
  • hotspot
  • hotspot-compiler
  • hotspot-gc
  • hotspot-jfr
  • hotspot-runtime
  • i18n
  • ide-support
  • javadoc
  • jdk
  • jmx
  • kulla
  • net
  • nio
  • security
  • serviceability
  • shenandoah

@roy-soumadipta
Copy link
Contributor Author

/label hotspot

@openjdk openjdk bot added the hotspot hotspot-dev@openjdk.org label Sep 13, 2023
@openjdk
Copy link

openjdk bot commented Sep 13, 2023

@roy-soumadipta
The hotspot label was successfully added.

Copy link
Member

@shipilev shipilev left a comment

Choose a reason for hiding this comment

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

Looks good.

/reviewers 2

@mlbridge
Copy link

mlbridge bot commented Sep 13, 2023

Webrevs

@openjdk
Copy link

openjdk bot commented Sep 13, 2023

@roy-soumadipta 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:

8315937: Enable parallelism in vmTestbase/nsk/stress/numeric tests

Reviewed-by: shade, lmesnik

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

  • edd454b: 8315766: Parallelize gc/stress/TestStressIHOPMultiThread.java test
  • de9b971: 8315933: Serial: Remove empty Generation::ensure_parsability
  • b48dbf6: 8316181: Move the fast locking implementation out of the .ad files
  • 8f4dfc4: 8316164: Opensource JMenuBar manual test
  • 33c62e4: 8316154: Opensource JTextArea manual tests
  • 14408bc: 8315973: Remove unused fields from ThreadLocalRandom
  • 903b9e8: 8316199: Remove sun/tools/jstatd/TestJstatd* tests from problemlist for Windows.
  • 639ba13: 8316179: Use consistent naming for lightweight locking in MacroAssembler
  • 11d431b: 8316228: jcmd tests are broken by 8314828
  • eb37c7e: 8315971: ProblemList containers/docker/TestMemoryAwareness.java on linux-all
  • ... and 101 more: https://git.openjdk.org/jdk/compare/024133b089d911dcc3ea70dfdaa6b150b14a9eb4...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.

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 (@shipilev, @lmesnik) but any other Committer may sponsor as well.

➡️ To flag this PR as ready for integration with the above commit message, type /integrate in a new comment. (Afterwards, your sponsor types /sponsor in a new comment to perform the integration).

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Sep 13, 2023
@openjdk
Copy link

openjdk bot commented Sep 13, 2023

@shipilev
The total number of required reviews for this PR (including the jcheck configuration and the last /reviewers command) is now set to 2 (with at least 1 Reviewer, 1 Author).

@openjdk openjdk bot removed the ready Pull request is ready to be integrated label Sep 13, 2023
Copy link
Member

@lmesnik lmesnik left a comment

Choose a reason for hiding this comment

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

Testing in CI passed.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Sep 13, 2023
@roy-soumadipta
Copy link
Contributor Author

/integrate

@openjdk openjdk bot added the sponsor Pull request is ready to be sponsored label Sep 14, 2023
@openjdk
Copy link

openjdk bot commented Sep 14, 2023

@roy-soumadipta
Your change (at version 339034c) is now ready to be sponsored by a Committer.

@phohensee
Copy link
Member

/sponsor

@openjdk
Copy link

openjdk bot commented Sep 14, 2023

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

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Sep 14, 2023
@openjdk openjdk bot closed this Sep 14, 2023
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review sponsor Pull request is ready to be sponsored labels Sep 14, 2023
@openjdk
Copy link

openjdk bot commented Sep 14, 2023

@phohensee @roy-soumadipta Pushed as commit eb1f67b.

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

@roy-soumadipta roy-soumadipta deleted the vmTestbase_nsk_stress_numeric-tests branch September 14, 2023 16:11
@phohensee
Copy link
Member

/sponsor

@openjdk
Copy link

openjdk bot commented Sep 15, 2023

@phohensee The command sponsor can only be used in open pull requests.

roy-soumadipta added a commit to roy-soumadipta/jdk11u-dev that referenced this pull request Sep 28, 2023
Backporting the fix for https://bugs.openjdk.org/browse/JDK-8315937 merged as part of openjdk/jdk#15725. https://github.com/openjdk/jdk/commit/339034c150cad7d3e1df55dbfac6c2b7746c4f92.patch could be applied cleanly.

Below are the results:
* before_release: **150.44s user 11.33s system 552% cpu 29.291 total**
* before_fastdebug: **390.49s user 14.77s system 952% cpu 42.535 total**
* after_release: **152.51s user 11.60s system 592% cpu 27.716 total**
* after_fastdebug: **348.22s user 12.40s system 929% cpu 38.792 total**
roy-soumadipta added a commit to roy-soumadipta/jdk21u that referenced this pull request Sep 28, 2023
Backporting the fix for https://bugs.openjdk.org/browse/JDK-8315937 merged as part of openjdk/jdk#15725. https://github.com/openjdk/jdk/commit/339034c150cad7d3e1df55dbfac6c2b7746c4f92.patch could be applied cleanly.

Below are the results:
* before_release: **117.84s user 10.43s system 685% cpu 18.725 total**
* before_fastdebug: **375.61s user 13.10s system 838% cpu 46.382 total**
* after_release: **119.35s user 11.63s system 728% cpu 17.991 total**
* after_fastdebug: **381.47s user 13.07s system 857% cpu 46.003 total**
roy-soumadipta added a commit to roy-soumadipta/jdk17u-dev that referenced this pull request Sep 28, 2023
Backporting the fix for https://bugs.openjdk.org/browse/JDK-8315937 merged as part of openjdk/jdk#15725. https://github.com/openjdk/jdk/commit/339034c150cad7d3e1df55dbfac6c2b7746c4f92.patch could be applied cleanly.

Below are the results:
* before_release: **137.73s user 12.12s system 686% cpu 21.817 total**
* before_fastdebug: **386.78s user 15.01s system 833% cpu 48.218 total**
* after_release: **123.11s user 10.71s system 756% cpu 17.693 total**
* after_fastdebug: **385.79s user 14.54s system 877% cpu 45.596 total**
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotspot hotspot-dev@openjdk.org integrated Pull request has been integrated
4 participants