Skip to content

Adding support for the Qualcomm processor family #26646

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

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dhanalla
Copy link

@dhanalla dhanalla commented Aug 5, 2025

This PR addresses the following:

  1. Enables the UseSHA3Intrinsics flag for CPU_QUALCOM. Previously, this flag was only enabled for CPU_APPLE. Benchmark results show significant performance improvements on Qualcomm CPUs with this intrinsic.
  2. Populates the _cpu type for Qualcomm CPUs and assigns the appropriate _variant value.

Performance testing:
The JMH test case MessageDigests.java is used to evaluate the performance improvements enabled by UseSHA3Intrinsics on Qualcomm CPUs.

Benchmark (digesterName) (length) (provider) Mode Cnt Score - Before change Error Score After change Error Units SHA3 Perf Improvement
MessageDigests.digest md5 64 DEFAULT thrpt 15 6090.669 ±867.303 5929.158 ±964.055 ops/ms -2.65%
MessageDigests.digest md5 16384 DEFAULT thrpt 15 52.965 ±0.063 52.966 ±0.067 ops/ms 0.00%
MessageDigests.digest SHA-1 64 DEFAULT thrpt 15 13953.944 ±2804.370 12851.234 ±2808.834 ops/ms -7.90%
MessageDigests.digest SHA-1 16384 DEFAULT thrpt 15 163.185 ±0.257 163.165 ±0.247 ops/ms -0.01%
MessageDigests.digest SHA-224 64 DEFAULT thrpt 15 12789.309 ±1764.126 12731.227 ±1592.795 ops/ms -0.45%
MessageDigests.digest SHA-224 16384 DEFAULT thrpt 15 173.271 ±0.252 173.277 ±0.263 ops/ms 0.00%
MessageDigests.digest SHA-256 64 DEFAULT thrpt 15 12351.269 ±1989.897 12515.247 ±1827.546 ops/ms 1.33%
MessageDigests.digest SHA-256 16384 DEFAULT thrpt 15 173.267 ±0.251 173.228 ±0.275 ops/ms -0.02%
MessageDigests.digest SHA-384 64 DEFAULT thrpt 15 7534.711 ±1362.332 7471.008 ±1231.627 ops/ms -0.85%
MessageDigests.digest SHA-384 16384 DEFAULT thrpt 15 106.619 ±0.171 106.585 ±0.195 ops/ms -0.03%
MessageDigests.digest SHA-512 64 DEFAULT thrpt 15 7374.132 ±982.015 7148.333 ±654.715 ops/ms -3.06%
MessageDigests.digest SHA-512 16384 DEFAULT thrpt 15 106.561 ±0.196 106.576 ±0.141 ops/ms 0.01%
MessageDigests.digest SHA3-256 64 DEFAULT thrpt 15 4363.650 ±682.413 5687.798 ±855.826 ops/ms 30.34%
MessageDigests.digest SHA3-256 16384 DEFAULT thrpt 15 45.794 ±0.069 58.735 ±0.077 ops/ms 28.26%
MessageDigests.digest SHA3-512 64 DEFAULT thrpt 15 4008.741 ±703.879 5145.512 ±866.479 ops/ms 28.36%
MessageDigests.digest SHA3-512 16384 DEFAULT thrpt 15 23.991 ±0.032 30.294 ±0.040 ops/ms 26.27%
MessageDigests.getAndDigest md5 64 DEFAULT thrpt 15 3315.641 ±496.653 3373.249 ±487.620 ops/ms 1.74%
MessageDigests.getAndDigest md5 16384 DEFAULT thrpt 15 52.795 ±0.011 52.806 ±0.037 ops/ms 0.02%
MessageDigests.getAndDigest SHA-1 64 DEFAULT thrpt 15 4821.245 ±435.847 4799.308 ±23.024 ops/ms -0.46%
MessageDigests.getAndDigest SHA-1 16384 DEFAULT thrpt 15 161.408 ±0.262 161.343 ±0.261 ops/ms -0.04%
MessageDigests.getAndDigest SHA-224 64 DEFAULT thrpt 15 4649.950 ±254.070 4661.334 ±236.146 ops/ms 0.24%
MessageDigests.getAndDigest SHA-224 16384 DEFAULT thrpt 15 171.218 ±0.201 171.213 ±0.201 ops/ms 0.00%
MessageDigests.getAndDigest SHA-256 64 DEFAULT thrpt 15 4690.036 ±229.799 4679.666 ±239.851 ops/ms -0.22%
MessageDigests.getAndDigest SHA-256 16384 DEFAULT thrpt 15 171.247 ±0.206 171.225 ±0.175 ops/ms -0.01%
MessageDigests.getAndDigest SHA-384 64 DEFAULT thrpt 15 3117.680 ±175.014 3190.412 ±15.006 ops/ms 2.33%
MessageDigests.getAndDigest SHA-384 16384 DEFAULT thrpt 15 105.473 ±0.151 105.409 ±0.181 ops/ms -0.06%
MessageDigests.getAndDigest SHA-512 64 DEFAULT thrpt 15 3082.799 ±19.986 3089.898 ±15.209 ops/ms 0.23%
MessageDigests.getAndDigest SHA-512 16384 DEFAULT thrpt 15 105.461 ±0.156 105.509 ±0.156 ops/ms 0.05%
MessageDigests.getAndDigest SHA3-256 64 DEFAULT thrpt 15 1995.297 ±396.007 2021.385 ±486.581 ops/ms 1.31%
MessageDigests.getAndDigest SHA3-256 16384 DEFAULT thrpt 15 45.994 ±0.051 58.283 ±0.095 ops/ms 26.72%
MessageDigests.getAndDigest SHA3-512 64 DEFAULT thrpt 15 1889.550 ±355.058 2173.164 ±437.968 ops/ms 15.01%
MessageDigests.getAndDigest SHA3-512 16384 DEFAULT thrpt 15 24.411 ±0.143 30.187 ±0.035 ops/ms 23.66%

Progress

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

Error

 ⚠️ OCA signatory status must be verified

Reviewing

Using git

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

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

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 26646

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

Using diff file

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

@bridgekeeper
Copy link

bridgekeeper bot commented Aug 5, 2025

👋 Welcome back dhanalla! 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 bot commented Aug 5, 2025

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@dhanalla dhanalla marked this pull request as draft August 5, 2025 16:46
@openjdk
Copy link

openjdk bot commented Aug 5, 2025

@dhanalla 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.

@bridgekeeper bridgekeeper bot added the oca Needs verification of OCA signatory status label Aug 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotspot [email protected] oca Needs verification of OCA signatory status
Development

Successfully merging this pull request may close these issues.

1 participant