RFR: 8305252: make_method_handle_intrinsic may call java code under a lock [v3]

Coleen Phillimore coleenp at openjdk.org
Wed Apr 19 19:33:43 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.

Coleen Phillimore has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:

 - Merge branch 'master' into invoketable
 - Update method deallocate_contents comments.
 - 8305252: make_method_handle_intrinsic may call java code under a lock

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/13308/files
  - new: https://git.openjdk.org/jdk/pull/13308/files/7cb29b91..023b56a4

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=13308&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13308&range=01-02

  Stats: 4810 lines in 112 files changed: 4275 ins; 284 del; 251 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