RFR: 8272138: ZGC: Adopt relaxed ordering for self-healing [v5]
Hao Tang
github.com+7947546+tanghaoth90 at openjdk.java.net
Fri Aug 13 09:33:27 UTC 2021
On Wed, 11 Aug 2021 14:43:46 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:
>> src/hotspot/share/gc/z/zForwarding.inline.hpp line 141:
>>
>>> 139: // Make sure that object copy is finished
>>> 140: // before forwarding table installation
>>> 141: OrderAccess::release();
>>
>> Can we replace it by `OrderAccess::storestore()`? I think LoadStore constraint in `OrderAccess::release()` is not required here.
>> Furthermore, is it possible to relax `Atomic::load_acquire` in `ZForwarding::at`?
>
> I believe further relaxing is possible, but it's unclear whether there will be observable perf improvement. Could be interesting to see some numbers before drawing any conclusion.
@albertnetymk Thanks for your suggestion.
> Can we replace it by `OrderAccess::storestore()`?
`OrderAccess::release()` has the same implementation as `OrderAccess::storestore()` on AArch64. Therefore, replacing `OrderAccess::release()` does not yield perf improvement.
I found an interesting pull request related to StoreStore: https://github.com/openjdk/jdk/pull/427 (not integrated yet). I am not aware that this patch can make any improvement.
> Furthermore, is it possible to relax `Atomic::load_acquire` in `ZForwarding::at`?
My initial experiment suggests >5% concurrent mark time reduction using `Atomic::load` instead.
I am still working on checking the correctness of the relaxation.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5046
More information about the hotspot-gc-dev
mailing list