RFR: 8227369: pd_disjoint_words_atomic() needs to be atomic [v2]

David Holmes dholmes at openjdk.java.net
Thu Feb 24 11:48:18 UTC 2022


On Wed, 23 Feb 2022 05:38:34 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
>
> David Holmes has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Remove underscore from name

I ran some GC benchmarks which turned out to be just specjbb2005 and specjvm2008-*.

There were two regressions flagged:

Linux-x64: SPECjvm2008-LU.large-ZGC  -5.82%
macos-x64: SPECjvm2008-Serial-ParGC  -4.16%

However, Erik thinks these are just noise as apparently ZGC doesn't use these atomic copy routines, nor does he think ParGC does either.

Thoughts?

-------------

PR: https://git.openjdk.java.net/jdk/pull/7567


More information about the hotspot-dev mailing list