RFR: 8261837: SIGSEGV in ciVirtualCallTypeData::translate_from

Dean Long dlong at openjdk.org
Mon Nov 20 22:48:12 UTC 2023


Type profiling code based on the x86 implementation uses XOR to check if the MDO value matches the klass, then later stores that XORed value into the MDO if the MDO value was 0.  However, there is a race here if we reload the MDO value to check for 0, resulting in storing OBJ_KLASS XOR MDO_KLASS back to the MDO.

I took a stab at riscv, but I don't have a way to test it.

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

Commit messages:
 - revert unnecessary changes
 - riscv
 - x86
 - aarch64

Changes: https://git.openjdk.org/jdk/pull/16750/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16750&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8261837
  Stats: 65 lines in 6 files changed: 38 ins; 4 del; 23 mod
  Patch: https://git.openjdk.org/jdk/pull/16750.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16750/head:pull/16750

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


More information about the hotspot-compiler-dev mailing list