RFR: 8294538: missing is_unloading() check in SharedRuntime::fixup_callers_callsite()

Erik Österlund eosterlund at openjdk.org
Thu Oct 20 07:41:32 UTC 2022


On Tue, 18 Oct 2022 17:37:30 GMT, Dean Long <dlong at openjdk.org> wrote:

> This change adds a missing is_unloading() check for the callee in SharedRuntime::fixup_callers_callsite() and removes from_compiled_entry_no_trampoline() because it is no longer used.

Looks good in general, but I have two questions.

src/hotspot/share/runtime/sharedRuntime.cpp line 2113:

> 2111:   NoSafepointVerifier nsv;
> 2112: 
> 2113:   CompiledMethod* callee = moop->code();

There is a moop->code() null check just a few lines below, so now it looks like we are reading the code pointer twice checking if it is null. Is ot enough to do that one time?

src/hotspot/share/runtime/sharedRuntime.cpp line 2119:

> 2117: 
> 2118:   CodeBlob* cb = CodeCache::find_blob(caller_pc);
> 2119:   if (cb == NULL || !cb->is_compiled() || callee->is_unloading()) {

Why not move the is_unloading check on callee to the if statement just above that checks the callee (as opposed to the callsite)?

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

Changes requested by eosterlund (Reviewer).

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


More information about the hotspot-dev mailing list