RFR: 8227369: pd_disjoint_words_atomic() needs to be atomic
Mikael Vidstedt
mikael at openjdk.java.net
Wed Feb 23 04:49:44 UTC 2022
On Tue, 22 Feb 2022 05:45:12 GMT, David Holmes <dholmes at openjdk.org> wrote:
> Replace the common "atomic" switch+loop code chunks in the pd code with a shared version that uses Atomic::load/store.
>
> See details in the bug report that show how current code is actually replaced by `memcpy` (in some places at least) whereas the new code is not.
>
> Platforms affected:
> - all x86
> - Zero
> - Windows Aarch64
> - PPC
>
> Testing: tiers 1-3
> Additional builds: tiers 4 and 5
> - builds covered: x86 and Zero
>
> GHA
> - builds covered: Windows-Aarch64
>
> The only build affected and not tested is PPC. It would be great if someone could take this for a spin on PPC.
>
> For platforms not affected by this change, i.e. those that already specialise the code, I make not claims regarding the atomicity or otherwise of those specialized versions. That would be for someone interested in those specific platforms to check out.
>
> Thanks,
> David
Nice!
(Unrelated to/separate from your change I do wonder if the specialized assembly copy code on the "other" platforms actually is warranted. My memory from doing the conjoint copy (with optional swap) is that gcc generates really good code, but maybe there are platforms/toolchains/cases where that's not sufficient.)
src/hotspot/share/utilities/copy.hpp line 302:
> 300:
> 301: protected:
> 302: inline static void _shared_disjoint_words_atomic(const HeapWord* from,
How about dropping the leading underscore prefix?
-------------
PR: https://git.openjdk.java.net/jdk/pull/7567
More information about the hotspot-dev
mailing list