RFR: 8296440: Remove Method* handling from cleanup_inline_caches_impl
Vladimir Kozlov
kvn at openjdk.org
Thu Mar 16 00:28:20 UTC 2023
On Wed, 1 Mar 2023 11:07:36 GMT, Richard Reingruber <rrich at openjdk.org> wrote:
> This PR replaces cleaning of static stubs in CompiledMethod::cleanup_inline_caches_impl() with a guarantee that it is actually not needed because the holder of the embedded target Method* is alive if the caller nmethod is not unloading.
>
> The holder of the target Method* has to be alive because it is reachable from the caller nmethod's oop pool. This is checked by `check_path_to_callee()` when a statically bound call gets resolved.
>
> C2i entry barriers can be removed for the same reason.
>
> Testing:
>
> Many rounds in our CI testing which includes most JCK and JTREG tests, Renaissance benchmark and SAP specific tests with fastdebug and release builds on the standard platforms plus PPC64.
>
> I've also done tier1 and tier2 tests with -XX:-Inline and tier1 tests with ZGC.
>
> I've started hotspot and jdk tier1 tests with -Xcomp. They were not finished when I stopped them after 24h.
It was linux-x64-debug VM:
# JRE version: Java(TM) SE Runtime Environment (21.0) (fastdebug build 21-internal-LTS-2023-03-15-1549029.vladimir.kozlov.jdkgit2)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 21-internal-LTS-2023-03-15-1549029.vladimir.kozlov.jdkgit2, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x18cca1f] SharedRuntime::resolve_sub_helper(bool, bool, JavaThread*)+0x96f
-------------
PR: https://git.openjdk.org/jdk/pull/12802
More information about the hotspot-dev
mailing list