RFR: 8227369: pd_disjoint_words_atomic() needs to be atomic
David Holmes
dholmes at openjdk.java.net
Wed Feb 23 05:13:51 UTC 2022
On Wed, 23 Feb 2022 04:42:33 GMT, Mikael Vidstedt <mikael 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
>
> 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?
Yep will do. Was originally intended (similar to other pd code) to indicate this was a private/internal API, but the protected status achieves the same thing. Thanks for looking at it and the help with the disassembly analysis. :)
-------------
PR: https://git.openjdk.java.net/jdk/pull/7567
More information about the hotspot-dev
mailing list