RFR: Fix held_monitor_count calculation

Hui Shi hshi at openjdk.java.net
Sat Jun 12 00:32:16 UTC 2021


Problem and fixes includes and we (Tencent team) would like to fixing further related issues.

- C1/C2 locking when deoptimize happen might lost counter inc.
  -  increase held monitor count in JIT code slow path runtime method  (Runtime1::monitorenter/SharedRuntime::complete_monitor_locking_C_inc_held_monitor_count),
  - JIT code only increases held monitor count only for fastpath.
- Deoptimization::relock_objects should update count in deoptee thread instead of current rhead.
- Add missing dec_held_monitor_count in interpreter.
- Enable assert ion in runtime dec_held_monitor_count and no assert triggers.
- Assert when Thread assert held_monitor_count should be zero.
   - No assertion happens with above fixes.

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

Commit messages:
 - Fix held_monitor_count calculation

Changes: https://git.openjdk.java.net/loom/pull/47/files
 Webrev: https://webrevs.openjdk.java.net/?repo=loom&pr=47&range=00
  Stats: 54 lines in 11 files changed: 36 ins; 11 del; 7 mod
  Patch: https://git.openjdk.java.net/loom/pull/47.diff
  Fetch: git fetch https://git.openjdk.java.net/loom pull/47/head:pull/47

PR: https://git.openjdk.java.net/loom/pull/47


More information about the loom-dev mailing list