-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8315937: Enable parallelism in vmTestbase/nsk/stress/numeric tests #15725
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
'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**
👋 Welcome back roy-soumadipta! A progress list of the required criteria for merging this PR into |
I think the larger improvement comes from the fact that we do not lose parallel VM workers waiting on these short tests, when larger |
@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
|
/label hotspot |
@roy-soumadipta |
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.
Looks good.
/reviewers 2
@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:
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
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 |
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.
Testing in CI passed.
/integrate |
@roy-soumadipta |
/sponsor |
Going to push as commit eb1f67b.
Your commit was automatically rebased without conflicts. |
@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. |
/sponsor |
@phohensee The command |
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**
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**
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**
'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:
Progress
Issue
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