RFR: 8296440: Remove Method* handling from cleanup_inline_caches_impl
Vladimir Kozlov
kvn at openjdk.org
Thu Mar 16 04:10:18 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.
Finally got hs_err file. The top of call stack look like this:
V [libjvm.so+0x18cca1f] SharedRuntime::resolve_sub_helper(bool, bool, JavaThread*)+0x96f (sharedRuntime.cpp:1411)
V [libjvm.so+0x18ccdb9] SharedRuntime::resolve_helper(bool, bool, JavaThread*)+0x39 (sharedRuntime.cpp:1246)
V [libjvm.so+0x18cdaee] SharedRuntime::resolve_opt_virtual_call_C(JavaThread*)+0x15e (sharedRuntime.cpp:1690)
v ~RuntimeStub::resolve_opt_virtual_call 0x00007fdab0ddb89b
J 17706 c2 jnr.enxio.channels.Native.read(ILjava/nio/ByteBuffer;)I org.jruby.dist (80 bytes) @ 0x00007fdab1317d9c [0x00007fdab1317d20+0x000000000000007c]
J 17705 c2 jnr.enxio.channels.NativeDeviceChannel.read(Ljava/nio/ByteBuffer;)I org.jruby.dist (91 bytes) @ 0x00007fdab2037704 [0x00007fdab20376c0+0x0000000000000044]
J 17384 c2 org.jruby.util.io.PosixShim.read(Lorg/jruby/util/io/ChannelFD;[BIIZ)I org.jruby.dist (192 bytes) @ 0x00007fdab190984c [0x00007fdab1909720+0x000000000000012c]
J 17379 c2 org.jruby.util.io.OpenFile$2.run(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;[BII)I org.jruby.dist (82 bytes) @ 0x00007fdab1fff4e8 [0x00007fdab1fff400+0x00000000000000e8]
-------------
PR: https://git.openjdk.org/jdk/pull/12802
More information about the hotspot-dev
mailing list