[jdk21u-dev] Integrated: 8318157: RISC-V: implement ensureMaterializedForStackWalk intrinsic

Olga Mikhaltsova omikhaltcova at openjdk.org
Tue Jan 30 21:16:36 UTC 2024


On Mon, 29 Jan 2024 12:19:04 GMT, Olga Mikhaltsova <omikhaltcova at openjdk.org> wrote:

> 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  n...

This pull request has now been integrated.

Changeset: c971925a
Author:    Olga Mikhaltsova <omikhaltcova at openjdk.org>
URL:       https://git.openjdk.org/jdk21u-dev/commit/c971925a8713fe8d2ac1307bdc2ab745c1d704f9
Stats:     5 lines in 1 file changed: 5 ins; 0 del; 0 mod

8318157: RISC-V: implement ensureMaterializedForStackWalk intrinsic

Backport-of: d6b4aa01a20eb7ecd44602a9fab3e3380bff3d3a

-------------

PR: https://git.openjdk.org/jdk21u-dev/pull/224


More information about the jdk-updates-dev mailing list