RFR: 8189685: need PerfMemory class update and a volatile_static_field support in VMStructs [v2]
Yasumasa Suenaga
ysuenaga at openjdk.org
Wed Aug 23 01:13:47 UTC 2023
On Tue, 22 Aug 2023 20:03:47 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:
>> During [JDK-8151815](https://bugs.openjdk.org/browse/JDK-8151815) it was noted that the PerfMemory _initialized and _destroyed fields should be volatile, but VMStructs didn't have the needed support for doing that, so it was left as a future task. @YaSuenag provided a patch at the time to take care of the VMStructs support. I've integrated it, although it was far from clean due to some changes in VMStructs, and also moving OrderAccess::release_store to Atomic::release_store.
>>
>> One other change I made to the patch had to do with consistency with using "volatile static" vs "static volatile". We already have volatile_nonstatic_field. The patch renamed static_ptr_volatile_field to static_volatile_field to make it more general purpose, but this was inconsistent with the name of volatile_nonstatic_field, so I chose the name volatile_static_field instead. This carried over into some other areas like the names of the GENERATE_VOLATILE_STATIC_VM_STRUCT_ENTRY and CHECK_VOLATILE_STATIC_VM_STRUCT_ENTRY macros.
>
> Chris Plummer has updated the pull request incrementally with one additional commit since the last revision:
>
> release_store() and load_acquire() not needed for _destroyed
src/hotspot/share/runtime/perfMemory.hpp line 137:
> 135: static size_t capacity() { return _capacity; }
> 136: static bool is_initialized();
> 137: static bool is_destroyed();
So don't we need to make changes here? I think we can keep current implementation ( `is_destroyed()` )
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15373#discussion_r1302331755
More information about the serviceability-dev
mailing list