Integrated: 8261649: AArch64: Optimize LSE atomics in C++ code

Andrew Haley aph at openjdk.java.net
Fri Feb 19 11:25:50 UTC 2021


On Wed, 17 Feb 2021 17:14:46 GMT, Andrew Haley <aph at openjdk.org> wrote:

> Now that we have support for LSE atomics in C++ HotSpot source, we can generate much better code for them. In particular, the sequence we generate for CMPXCHG with a full two-way barrier using two DMBs is way suboptimal.
> 
> This patch:
> 
> Moves memory barriers from the atomic_linux_aarch64 file into the stubs.
> Rewrites the LSE versions of the stubs to be more efficient.
> Fixes a race condition in stub generation.
> Mostly leaves the pre-LSE stubs alone, except that I added a PRFM which according to kernel engineers improves performance.

This pull request has now been integrated.

Changeset: 1b0c36b0
Author:    Andrew Haley <aph at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/1b0c36b0
Stats:     285 lines in 4 files changed: 170 ins; 45 del; 70 mod

8261649: AArch64: Optimize LSE atomics in C++ code

Reviewed-by: adinn

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

PR: https://git.openjdk.java.net/jdk/pull/2611


More information about the hotspot-dev mailing list