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