[jdk21u-dev] RFR: 8318157: RISC-V: implement ensureMaterializedForStackWalk intrinsic
Olga Mikhaltsova
omikhaltcova at openjdk.org
Mon Jan 29 14:20:58 UTC 2024
Hi! I would like to backport [JDK-8318157](https://bugs.openjdk.org/browse/JDK-8318157) to jdk21u in order to improve performance via the ensureMaterializedForStackWalk C2 intrinsic. It's a clean backport related only to RISC-V.
Tested: tier1 tests passed.
The benchmark shows the following performance improvement on the T-Head RVB-ICE board:
**Before**
Benchmark Mode Cnt Score Error Units
ScopedValues.CreateBindThenGetThenRemove_ScopedValue avgt 10 801.570 ± 40.067 ns/op
ScopedValues.bindThenGetNoRemove_ThreadLocal avgt 10 47.918 ± 0.267 ns/op
ScopedValues.bindThenGetThenRemove_ScopedValue avgt 10 733.398 ± 44.490 ns/op
ScopedValues.bindThenGetThenRemove_ThreadLocal avgt 10 862.636 ± 12.210 ns/op
ScopedValues.bindViaGet_ScopedValue avgt 10 551.035 ± 18.560 ns/op
ScopedValues.bind_ScopedValue avgt 10 556.024 ± 21.099 ns/op
ScopedValues.bind_ThreadLocal avgt 10 850.550 ± 17.945 ns/op
ScopedValues.counter_ScopedValue avgt 10 35.339 ± 0.322 ns/op
ScopedValues.counter_ThreadLocal avgt 10 43.619 ± 0.187 ns/op
ScopedValues.setNoRemove_ScopedValue avgt 10 40.175 ± 0.259 ns/op
ScopedValues.setNoRemove_ThreadLocal avgt 10 43.164 ± 0.343 ns/op
ScopedValues.sixValues_ScopedValue avgt 10 2.550 ± 0.015 us/op
ScopedValues.sixValues_ThreadLocal avgt 10 8.932 ± 0.019 us/op
ScopedValues.thousandAdds_ScopedValue avgt 10 0.161 ± 0.004 us/op
ScopedValues.thousandAdds_ThreadLocal avgt 10 9.649 ± 0.019 us/op
ScopedValues.thousandIsBoundQueries avgt 10 32.859 ± 0.368 ns/op
ScopedValues.thousandMaybeGets avgt 10 153.627 ± 3.627 ns/op
**After**
Benchmark Mode Cnt Score Error Units
ScopedValues.CreateBindThenGetThenRemove_ScopedValue avgt 10 370.934 ± 5.118 ns/op
ScopedValues.bindThenGetNoRemove_ThreadLocal avgt 10 48.777 ± 3.015 ns/op
ScopedValues.bindThenGetThenRemove_ScopedValue avgt 10 317.331 ± 19.020 ns/op
ScopedValues.bindThenGetThenRemove_ThreadLocal avgt 10 880.733 ± 56.253 ns/op
ScopedValues.bindViaGet_ScopedValue avgt 10 159.534 ± 6.276 ns/op
ScopedValues.bind_ScopedValue avgt 10 160.035 ± 5.857 ns/op
ScopedValues.bind_ThreadLocal avgt 10 854.117 ± 13.623 ns/op
ScopedValues.counter_ScopedValue avgt 10 35.351 ± 0.344 ns/op
ScopedValues.counter_ThreadLocal avgt 10 48.654 ± 0.306 ns/op
ScopedValues.setNoRemove_ScopedValue avgt 10 40.246 ± 0.259 ns/op
ScopedValues.setNoRemove_ThreadLocal avgt 10 47.947 ± 0.283 ns/op
ScopedValues.sixValues_ScopedValue avgt 10 2.121 ± 0.004 us/op
ScopedValues.sixValues_ThreadLocal avgt 10 9.894 ± 0.019 us/op
ScopedValues.thousandAdds_ScopedValue avgt 10 0.162 ± 0.005 us/op
ScopedValues.thousandAdds_ThreadLocal avgt 10 10.900 ± 0.021 us/op
ScopedValues.thousandIsBoundQueries avgt 10 31.986 ± 0.407 ns/op
ScopedValues.thousandMaybeGets avgt 10 159.027 ± 4.133 ns/op
-------------
Commit messages:
- Backport d6b4aa01a20eb7ecd44602a9fab3e3380bff3d3a
Changes: https://git.openjdk.org/jdk21u-dev/pull/224/files
Webrev: https://webrevs.openjdk.org/?repo=jdk21u-dev&pr=224&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8318157
Stats: 5 lines in 1 file changed: 5 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk21u-dev/pull/224.diff
Fetch: git fetch https://git.openjdk.org/jdk21u-dev.git pull/224/head:pull/224
PR: https://git.openjdk.org/jdk21u-dev/pull/224
More information about the jdk-updates-dev
mailing list