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

8280703: CipherCore.doFinal(...) causes potentially massive byte[] allocations during decryption #1169

Closed

Conversation

asgibbons
Copy link
Contributor

@asgibbons asgibbons commented Feb 13, 2023

This change boosts AES-CTR decrypt performance about 3x.


Progress

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

Issue

  • JDK-8280703: CipherCore.doFinal(...) causes potentially massive byte[] allocations during decryption

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk17u-dev pull/1169/head:pull/1169
$ git checkout pull/1169

Update a local copy of the PR:
$ git checkout pull/1169
$ git pull https://git.openjdk.org/jdk17u-dev pull/1169/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 1169

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

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk17u-dev/pull/1169.diff

@bridgekeeper
Copy link

bridgekeeper bot commented Feb 13, 2023

👋 Welcome back sgibbons! 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 changed the title Backport 409382ba4b43bf48ed0086020dd20641effd35b6 8280703: CipherCore.doFinal(...) causes potentially massive byte[] allocations during decryption Feb 13, 2023
@openjdk
Copy link

openjdk bot commented Feb 13, 2023

This backport pull request has now been updated with issue from the original commit.

@openjdk
Copy link

openjdk bot commented Feb 13, 2023

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

8280703: CipherCore.doFinal(...) causes potentially massive byte[] allocations during decryption

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

  • 9bacd0c: 8266974: duplicate property key in java.sql.rowset resource bundle
  • a5c97d4: 8300751: [17u] Remove duplicate entry in javac.properties
  • c8ee076: 8245654: Add Certigna Root CA
  • a0cda28: 8294902: Undefined Behavior in C2 regalloc with null references
  • 3c1e03b: 8251177: [macosx] The text "big" is truncated in JTabbedPane
  • bf4e659: 8272702: Resolving URI relative path with no / may lead to incorrect toString
  • da62b2b: 8299970: Speed up compiler/arraycopy/TestArrayCopyConjoint.java
  • fcd9110: 8298472: AArch64: Detect Ampere-1 and Ampere-1A CPUs and set default options
  • a6f4cf1: 8302152: Speed up tests with infinite loops, sleep less
  • 49ff97c: 8301342: Prefer ArrayList to LinkedList in LayoutComparator
  • ... and 14 more: https://git.openjdk.org/jdk17u-dev/compare/a800231f17a5081de7f2336742faa97b11f12b3b...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.

➡️ 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 ready Pull request is ready to be integrated rfr Pull request is ready for review labels Feb 13, 2023
@mlbridge
Copy link

mlbridge bot commented Feb 13, 2023

Webrevs

@GoeLin
Copy link
Member

GoeLin commented Feb 14, 2023

Could you please elaborato on risk and testing in your JBS comment? See https://wiki.openjdk.org/display/JDKUpdates/How+to+contribute+or+backport+a+fix

@asgibbons
Copy link
Contributor Author

I believe the risk is very low as it just restricts the amount of memory to be allocated. I've tested this with tier1.

@asgibbons
Copy link
Contributor Author

@GoeLin Can I get an update on this please? Anything else I need to do?

@RealCLanger
Copy link
Contributor

RealCLanger commented Feb 24, 2023

@GoeLin Can I get an update on this please? Anything else I need to do?

Hi @asgibbons,
I believe you should have restored the jdk17u-fix-request label to get Goetz' attention. However, I've checked your request and approved it. I think it's a reasonable performance improvement with acceptable risk.

@asgibbons
Copy link
Contributor Author

Thanks, @RealCLanger .

/integrate

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

openjdk bot commented Feb 24, 2023

@asgibbons
Your change (at version 4ce2b01) is now ready to be sponsored by a Committer.

@RealCLanger
Copy link
Contributor

/sponsor

@openjdk
Copy link

openjdk bot commented Feb 24, 2023

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

  • 53caaf5: 8289647: AssertionError during annotation processing of record related tests
  • 9bacd0c: 8266974: duplicate property key in java.sql.rowset resource bundle
  • a5c97d4: 8300751: [17u] Remove duplicate entry in javac.properties
  • c8ee076: 8245654: Add Certigna Root CA
  • a0cda28: 8294902: Undefined Behavior in C2 regalloc with null references
  • 3c1e03b: 8251177: [macosx] The text "big" is truncated in JTabbedPane
  • bf4e659: 8272702: Resolving URI relative path with no / may lead to incorrect toString
  • da62b2b: 8299970: Speed up compiler/arraycopy/TestArrayCopyConjoint.java
  • fcd9110: 8298472: AArch64: Detect Ampere-1 and Ampere-1A CPUs and set default options
  • a6f4cf1: 8302152: Speed up tests with infinite loops, sleep less
  • ... and 15 more: https://git.openjdk.org/jdk17u-dev/compare/a800231f17a5081de7f2336742faa97b11f12b3b...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Feb 24, 2023
@openjdk openjdk bot closed this Feb 24, 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 Feb 24, 2023
@openjdk
Copy link

openjdk bot commented Feb 24, 2023

@RealCLanger @asgibbons Pushed as commit 9c35d59.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport clean integrated Pull request has been integrated
3 participants