Integrated: 8278241: Implement JVM SpinPause on linux-aarch64
Evgeny Astigeevich
duke at openjdk.java.net
Wed Dec 15 17:01:06 UTC 2021
On Fri, 10 Dec 2021 21:02:53 GMT, Evgeny Astigeevich <duke at openjdk.java.net> wrote:
> This JVM SpinPause uses a spin wait stub. The stub is generated based on the `SpinWait` description which is defined with `OnSpinWaitInst`/`OnSpinWaitInstCount` options. The `SpinWait` provides the description of the instruction and the instruction count.
>
> The `SpinWait` description is also used for the `_onSpinWait()` intrinsic. We don't have use cases when we need different implementations for the `_onSpinWait()` intrinsic and JVM SpinPause.
>
> Testing results for fastdebug and release builds:
> - `gtest`: Passed
> - `tier1`...`tier4`: Passed
> - `hotspot/jtreg/runtime/Thread/TestSpinPause.java`: Passed
>
> JVM SpinPause is used for the synchronised statements and can benchmarked with `org.openjdk.bench.vm.lang.LockUnlock.testContendedLock`.
>
> Benchmarking results (number of samples per an experiment: 150) for Graviton2 (Neoverse N1), 1 ISB instruction:
>
>
>
> +-----------+-------------------+------------+-----------+-----------+----------+---------+
> | CPU cores | Contended threads | Base ns/op | Error | New | Error | Diff |
> +-----------+-------------------+------------+-----------+-----------+----------+---------+
> | 8 | 64 | 10007.213 | ±910.911 | 8527.346 | ±377.242 | -14.79% |
> | 16 | 64 | 10274.935 | ±880.568 | 8310.433 | ±326.845 | -19.12% |
> | 32 | 64 | 12231.947 | ±1525.364 | 9205.941 | ±394.409 | -24.74% |
> | 64 | 64 | 9929.49 | ±586.074 | 10488.695 | ±570.458 | 5.63% |
> | 64 | 32 | 5605.119 | ±629.340 | 5023.882 | ±230.639 | -10.37% |
> | 64 | 16 | 2817.346 | ±263.696 | 2367.528 | ±94.158 | -15.97% |
> | 64 | 2 | 870.389 | ±530.579 | 464.395 | ±126.260 | -46.65% |
> +-----------+-------------------+------------+-----------+-----------+----------+---------+
This pull request has now been integrated.
Changeset: bcb79fd0
Author: Evgeny Astigeevich <eastig at amazon.com>
Committer: Paul Hohensee <phh at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/bcb79fd012c9c298e58c20c59e564e9d2c16b970
Stats: 125 lines in 5 files changed: 124 ins; 0 del; 1 mod
8278241: Implement JVM SpinPause on linux-aarch64
Reviewed-by: aph, phh
-------------
PR: https://git.openjdk.java.net/jdk/pull/6803
More information about the hotspot-dev
mailing list