RFR: 8189685: need PerfMemory class update and a volatile_static_field support in VMStructs

Chris Plummer cjplummer at openjdk.org
Mon Aug 21 21:53:46 UTC 2023


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.

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

Commit messages:
 - Make needed perfMemory fields volatile and added needed vmstructs support for volatile static.

Changes: https://git.openjdk.org/jdk/pull/15373/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15373&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8189685
  Stats: 22 lines in 5 files changed: 7 ins; 0 del; 15 mod
  Patch: https://git.openjdk.org/jdk/pull/15373.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15373/head:pull/15373

PR: https://git.openjdk.org/jdk/pull/15373


More information about the hotspot-dev mailing list