RFR: 8261445: Use memory_order_relaxed for os::random().
Aleksey Shipilev
shade at openjdk.java.net
Tue Feb 9 18:26:40 UTC 2021
On Tue, 9 Feb 2021 14:49:12 GMT, Andrew Haley <aph at openjdk.org> wrote:
> os::random() is used a lot (once for every class) during HotSpot initialization, and it defaults to using a compare-and-swap operation with memory_order_conservative. We don't need that: it should be memory_order_relaxed.
It seems superficially fine, given unsynchronized read of `_rand_seed` prior to that. But I have to wonder if in absence of any memory ordering semantics, this loop is guaranteed to terminate? That is, can't a sufficiently hostile optimizer reduce it to the CAS loop that always expects a constant "oldval" seed?
-------------
PR: https://git.openjdk.java.net/jdk/pull/2484
More information about the hotspot-runtime-dev
mailing list