RFR: 8252990: Intrinsify Unsafe.storeStoreFence [v2]
Aleksey Shipilev
shade at openjdk.java.net
Thu Oct 28 08:58:49 UTC 2021
On Thu, 28 Oct 2021 07:41:59 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> Thanks for clarifying. Now we have all the intrinsics in place we have the choice of delegating either at the Java level or the native level, where previously we had to delegate at the Java level to get the benefit of the storeFence intrinsic. But it is fine as-is.
>
> Now I am actually thinking to drop `Unsafe_{Load|Store}Fence` entry points and delegate `Unsafe.{load|store}Fence()` to `Unsafe.fullFence()` as the fallback, in a similar way. It looks to me calling all the way to `unsafe.cpp` for a single barrier is not that useful. That's something for a separate PR.
>
> So it would be something like:
> - `storeStore` intrinsifies efficiently, or falls back to `release`
> - `loadLoad` always falls back to `acquire` (seems to be little sense to intrinsify this, as all platforms alias it to `acquire`)
> - `acquire` intrinsifies efficiently, or falls back to `full`
> - `release` intrinsifies efficiently, or falls back to `full`
> - `full` intrinsifies efficiently, or falls back to `Unsafe_FullFence`, which calls `OrderAccess::fullFence()`.
Doing it here: #6149, JDK-8276096.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6136
More information about the core-libs-dev
mailing list