RFR: 8252794: Creation of JNIMethodBlock should be done with a leaf lock

Robbin Ehn rehn at openjdk.java.net
Mon Sep 7 12:21:58 UTC 2020


JVM TI uses handshakes and sometimes need jmethod ids.
The CLD have an area where these ids are saved, which is created on first request for an id.

The creation of this area should be done with a leaf lock.
In W.I.P. asynchronous handshake change-set we use a mutex instead of a semaphore for serializing the handshakes,
we thus get into lock ranks asserts.

The CLD metaspace lock cannot be pushed down but we can use the same lock as for creating jmethod ids:
JmethodIdCreation_lock. And push that down. (special-2 is picked to be compatible with W.I.P. asynchronous handshake
change-set)

The reason for CLD metaspace lock being used now is that we have one per CLD instead of one global one.

Testing passes: t1-3

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

Commit messages:
 - Changed and pushed down

Changes: https://git.openjdk.java.net/jdk/pull/53/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=53&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8252794
  Stats: 3 lines in 2 files changed: 0 ins; 0 del; 3 mod
  Patch: https://git.openjdk.java.net/jdk/pull/53.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/53/head:pull/53

PR: https://git.openjdk.java.net/jdk/pull/53


More information about the hotspot-dev mailing list