RFR: 8305252: make_method_handle_intrinsic may call java code under a lock

Coleen Phillimore coleenp at openjdk.org
Tue Apr 18 15:31:01 UTC 2023


This patch releases the InvokeMethodTable_lock while creating a method handle intrinsic.  If there's a race, it frees a Method created by racing thread.  The logic is simple but uses the deallocate_list infrastructure that's mostly used for redefinition making it less rare.  With Dacapo2009, this adds about 20 Methods + constant pools to the list.  Also the method has to call nmethod->flush which is assumed to be something only GC calls.

Tested with tier1-4.

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

Commit messages:
 - 8305252: make_method_handle_intrinsic may call java code under a lock

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

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


More information about the hotspot-dev mailing list