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

8264846: Regression ~5% in J2dBench.bimg_misc on Linux after JDK-8263142 #3990

Closed
wants to merge 6 commits into from

Conversation

@mrserb
Copy link
Member

@mrserb mrserb commented May 12, 2021

Performance in one of the tests in the bimg_misc group is dropped by 20%(or 5% of the group) after some unused code was removed from the libawt. I assume the size of the lib became smaller and GCC heuristics were changed to do not try to increase the size by inlining over some percent. I tested various options but most of them affect different test cases in the opposite ways.

While testing I have found that the most profitable option is to simply use the "O3" optimization level, moreover, after offline discussion, we have found that this optimization level was used before, but due to the typo, we missed this option and fallback to the "LOW" level.

Note this will change optimization level for all platforms in case of any regressions we may try to implement this change for GGC only or we may try to use just these options to solve this performance issue: " -ftree-loop-vectorize -fversion-loops-for-strides "

Summary:
  b12:
    Number of tests: 13
    Overall average: 1222067.1646119351
    Best spread: 0.07% variance
    Worst spread: 3.22% variance
    (Basis for results comparison)

  o3:
    Number of tests: 13
    Overall average: 1991716.540920269
    Best spread: 0.0% variance
    Worst spread: 2.22% variance
    Comparison to basis:
      Best result: 314.15% of basis
      Worst result: 97.23% of basis
      Number of wins: 8
      Number of ties: 4
      Number of losses: 1

  two options:
    Number of tests: 13
    Overall average: 1971528.6542701898
    Best spread: 0.0% variance
    Worst spread: 7.08% variance
    Comparison to basis:
      Best result: 312.05% of basis
      Worst result: 77.27% of basis
      Number of wins: 6
      Number of ties: 1
      Number of losses: 6


Progress

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

Issue

  • JDK-8264846: Regression ~5% in J2dBench.bimg_misc on Linux after JDK-8263142

Reviewers

Reviewing

Using git

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

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

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 3990

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

Using diff file

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

@bridgekeeper
Copy link

@bridgekeeper bridgekeeper bot commented May 12, 2021

👋 Welcome back serb! 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
Copy link

@openjdk openjdk bot commented May 12, 2021

@mrserb The following labels will be automatically applied to this pull request:

  • 2d
  • build

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command.

@mrserb mrserb marked this pull request as ready for review May 13, 2021
@openjdk openjdk bot added the rfr label May 13, 2021
@mlbridge
Copy link

@mlbridge mlbridge bot commented May 13, 2021

Webrevs

@openjdk
Copy link

@openjdk openjdk bot commented May 13, 2021

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

8264846: Regression ~5% in J2dBench.bimg_misc on Linux after JDK-8263142

Reviewed-by: erikj, azvegint

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

  • b4371e9: 8266552: Technical corrections to java/util/random/package-info.java
  • e14b026: 8243287: Removal of Unsafe::defineAnonymousClass
  • a564f2c: 8266821: G1: Prefetch cards during merge heap roots phase
  • 127bfe4: 8266074: Vtable-based CHA implementation
  • 347d41d: 8164804: sun/security/ssl/SSLSocketImpl/CloseSocket.java makes not reliable time assumption
  • 17ceef9: 8266819: Separate the stop policies from the compile policies completely
  • a270cbe: 8267043: IntelliJ project doesn't handle generated sources correctly
  • 08a5a5c: 8263382: java/util/logging/ParentLoggersTest.java failed with "checkLoggers: getLoggerNames() returned unexpected loggers"
  • b50fc5f: 8265528: Specification of BasicSplitPaneDivider::getMinimumSize,getPreferredSize doesn't match with its behavior.
  • d215743: 8231031: runtime/ReservedStack/ReservedStackTest.java fails after jsr166 refresh

Please see this link for an up-to-date comparison between the source branch of this pull request and the master branch.
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 label May 13, 2021
@mrserb
Copy link
Member Author

@mrserb mrserb commented May 13, 2021

/integrate

@openjdk openjdk bot closed this May 13, 2021
@openjdk openjdk bot added integrated and removed ready rfr labels May 13, 2021
@openjdk
Copy link

@openjdk openjdk bot commented May 13, 2021

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

  • 2a2f105: 8267117: sun/hotspot/whitebox/CPUInfoTest.java fails on Ice Lake
  • 2667024: 8266881: Enable debug log for SSLEngineExplorerMatchedSNI.java
  • 6c107fd: 8264299: Create implementation of native accessibility peer for ScrollPane and ScrollBar Java Accessibility roles
  • 853ffdb: 8265934: Cleanup _suspend_flags and _special_runtime_exit_condition
  • f3c6cda: 8266162: Remove JPackage duplicate tests
  • a259ab4: 8258795: Update IANA Language Subtag Registry to Version 2021-05-11
  • b4371e9: 8266552: Technical corrections to java/util/random/package-info.java
  • e14b026: 8243287: Removal of Unsafe::defineAnonymousClass
  • a564f2c: 8266821: G1: Prefetch cards during merge heap roots phase
  • 127bfe4: 8266074: Vtable-based CHA implementation
  • ... and 6 more: https://git.openjdk.java.net/jdk/compare/ab17be283559ba0477bc0dcbd11dbfccf155a57f...master

Your commit was automatically rebased without conflicts.

Pushed as commit 4086081.

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

@mrserb mrserb deleted the JDK-8264846 branch May 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
3 participants