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

8273438: Enable parallelism in vmTestbase/metaspace/stressHierarchy tests #5391

Conversation

shipilev
Copy link
Member

@shipilev shipilev commented Sep 7, 2021

Current vmTestbase/metaspace/stressHierarchy tests (part of vmTestbase_vm_metaspace suite) contains about 15 tests, each running exclusively. There seem to be no reason to run them exclusively, though: they complete in reasonable time, are single-threaded, and consume the usual amount of memory. There is no evidence in JBS that they ever timed out without a reason, and their history unfortunately predates OpenJDK to see why they were not concurrent from day one.

We should consider enabling parallelism for vmTestbase/metaspace/stressHierarchy and get improved test performance. Currently it is blocked by TEST.properties with exclusiveAccess.dirs directives in them.

Note there are other exclusive tests in vmTestbase_vm_metaspace, but those seem to be the hard stress tests: pushing GC to the limits, or doing many threads, etc.

Motivational test time improvements below.

Before:

$ time CONF=linux-x86_64-server-fastdebug make run-test TEST=vmTestbase_vm_metaspace | ts -s
...
00:24:53 ==============================
00:24:53 Test summary
00:24:53 ==============================
00:24:53    TEST                                              TOTAL  PASS  FAIL ERROR   
00:24:53    jtreg:test/hotspot/jtreg:vmTestbase_vm_metaspace     25    25     0     0   
00:24:53 ==============================
00:24:53 TEST SUCCESS
00:24:53 
00:24:53 Finished building target 'run-test' in configuration 'linux-x86_64-server-fastdebug'

real	24m53.389s
user	53m2.029s
sys	1m1.849s

After:

$ time CONF=linux-x86_64-server-fastdebug make run-test TEST=vmTestbase_vm_metaspace | ts -s
...
00:04:04 ==============================
00:04:04 Test summary
00:04:04 ==============================
00:04:04    TEST                                              TOTAL  PASS  FAIL ERROR   
00:04:04    jtreg:test/hotspot/jtreg:vmTestbase_vm_metaspace     25    25     0     0   
00:04:04 ==============================
00:04:04 TEST SUCCESS
00:04:04 
00:04:04 Finished building target 'run-test' in configuration 'linux-x86_64-server-fastdebug'

real	4m4.574s
user	56m10.582s
sys	1m4.725s

Progress

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

Issue

  • JDK-8273438: Enable parallelism in vmTestbase/metaspace/stressHierarchy tests

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/5391/head:pull/5391
$ git checkout pull/5391

Update a local copy of the PR:
$ git checkout pull/5391
$ git pull https://git.openjdk.java.net/jdk pull/5391/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 5391

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

Using diff file

Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/5391.diff

@bridgekeeper
Copy link

bridgekeeper bot commented Sep 7, 2021

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

@openjdk openjdk bot added the rfr Pull request is ready for review label Sep 7, 2021
@openjdk
Copy link

openjdk bot commented Sep 7, 2021

@shipilev The following label will be automatically applied to this pull request:

  • hotspot

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.

@openjdk openjdk bot added the hotspot hotspot-dev@openjdk.org label Sep 7, 2021
@mlbridge
Copy link

mlbridge bot commented Sep 7, 2021

Webrevs

@mseledts
Copy link
Member

mseledts commented Sep 9, 2021

This looks like a good change to me. Please allow me some time to run multiple stress testing of these tests with exclusiveAccess removed. I should have the results tonight PST, or tomorrow.

Copy link
Member

@mseledts mseledts left a comment

Choose a reason for hiding this comment

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

Stability testing passed with the change. Change looks good to me.

@shipilev
Copy link
Member Author

Thank you @mseledts. I guess I need a second reviewer for this. @iignatev, @dholmes-ora?

@openjdk
Copy link

openjdk bot commented Sep 13, 2021

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

8273438: Enable parallelism in vmTestbase/metaspace/stressHierarchy tests

Reviewed-by: mseledtsov, iignatyev

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

  • f9b2507: 8271834: TestStringDeduplicationAgeThreshold intermittent failures on Shenandoah
  • 261cb44: 8273629: compiler/uncommontrap/TestDeoptOOM.java fails with release VMs
  • b0d0497: 8273584: TypeElement.getSuperclass crashes for a record TypeElement when j.l.Record is not available
  • 4efcd20: 8273478: [macos11] JTabbedPane selected and pressed tab is not legible
  • a73c06d: 8273021: C2: Improve Add and Xor ideal optimizations
  • 9f86082: 8273610: LogTestFixture::restore_config() should not restore options
  • 2ee1f96: 8273484: Cleanup unnecessary null comparison before instanceof check in java.naming
  • f189dff: 8273595: tools/jpackage tests do not work on apt-based Linux distros like Debian
  • 922e86f: 8273522: Rename test property vm.cds.archived.java.heap to vm.cds.write.archived.java.heap
  • f42b927: 8273609: Fix trivial doc typos in the compiler area
  • ... and 76 more: https://git.openjdk.java.net/jdk/compare/3cd95a2932ab6a2cb39322354f7ad181de8bfc9e...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 Sep 13, 2021
@shipilev
Copy link
Member Author

All right, thank you! I'll integrate and see what happens next.

/integrate

@openjdk
Copy link

openjdk bot commented Sep 14, 2021

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

  • 86a8e55: 8273486: Zero: Handle DiagnoseSyncOnValueBasedClasses VM option
  • 8d73ee6: 8273471: Add foldmultilines to UL for stdout/err
  • c54a918: 8273691: Missing comma after 2021 in GraphemeTestAccessor.java copyright notice
  • 3d9dc8f: 8273430: Suspicious duplicate condition in java.util.regex.Grapheme#isExcludedSpacingMark
  • 5095068: 8273675: Remove unused Universe::_verify_in_progress flag
  • fc0f854: 8246797: A convenient method to read OPTIONAL element
  • 6cf5079: 8273513: Make java.io.FilterInputStream specification more precise about overrides
  • b4b1210: 8273616: Fix trivial doc typos in the java.base module
  • 7c26ddb: 8195809: [TESTBUG] jps and jcmd -l support for containers is not tested
  • 4cfa230: 8273259: Character.getName doesn't follow Unicode spec for ideographs
  • ... and 86 more: https://git.openjdk.java.net/jdk/compare/3cd95a2932ab6a2cb39322354f7ad181de8bfc9e...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot closed this Sep 14, 2021
@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 Sep 14, 2021
@openjdk
Copy link

openjdk bot commented Sep 14, 2021

@shipilev Pushed as commit a143372.

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

@shipilev shipilev deleted the JDK-8273438-vmTestbase-vm-metaspace-par branch September 14, 2021 08:37
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
3 participants