Skip to content

Commit 2fe1298

Browse files
author
Cesar Soares Lucas
committed
8359064: Expose reason for marking nmethod non-entrant to JVMCI client
Reviewed-by: dnsimon, never
1 parent 2e3bdec commit 2fe1298

File tree

25 files changed

+271
-101
lines changed

25 files changed

+271
-101
lines changed

src/hotspot/share/c1/c1_Runtime1.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -818,7 +818,7 @@ JRT_ENTRY(void, Runtime1::deoptimize(JavaThread* current, jint trap_request))
818818
Deoptimization::DeoptReason reason = Deoptimization::trap_request_reason(trap_request);
819819

820820
if (action == Deoptimization::Action_make_not_entrant) {
821-
if (nm->make_not_entrant(nmethod::ChangeReason::C1_deoptimize)) {
821+
if (nm->make_not_entrant(nmethod::InvalidationReason::C1_DEOPTIMIZE)) {
822822
if (reason == Deoptimization::Reason_tenured) {
823823
MethodData* trap_mdo = Deoptimization::get_method_data(current, method, true /*create_if_missing*/);
824824
if (trap_mdo != nullptr) {
@@ -1110,7 +1110,7 @@ JRT_ENTRY(void, Runtime1::patch_code(JavaThread* current, C1StubId stub_id ))
11101110
// safepoint, but if it's still alive then make it not_entrant.
11111111
nmethod* nm = CodeCache::find_nmethod(caller_frame.pc());
11121112
if (nm != nullptr) {
1113-
nm->make_not_entrant(nmethod::ChangeReason::C1_codepatch);
1113+
nm->make_not_entrant(nmethod::InvalidationReason::C1_CODEPATCH);
11141114
}
11151115

11161116
Deoptimization::deoptimize_frame(current, caller_frame.id());
@@ -1358,7 +1358,7 @@ void Runtime1::patch_code(JavaThread* current, C1StubId stub_id) {
13581358
// Make sure the nmethod is invalidated, i.e. made not entrant.
13591359
nmethod* nm = CodeCache::find_nmethod(caller_frame.pc());
13601360
if (nm != nullptr) {
1361-
nm->make_not_entrant(nmethod::ChangeReason::C1_deoptimize_for_patching);
1361+
nm->make_not_entrant(nmethod::InvalidationReason::C1_DEOPTIMIZE_FOR_PATCHING);
13621362
}
13631363
}
13641364

@@ -1486,7 +1486,7 @@ JRT_ENTRY(void, Runtime1::predicate_failed_trap(JavaThread* current))
14861486

14871487
nmethod* nm = CodeCache::find_nmethod(caller_frame.pc());
14881488
assert (nm != nullptr, "no more nmethod?");
1489-
nm->make_not_entrant(nmethod::ChangeReason::C1_predicate_failed_trap);
1489+
nm->make_not_entrant(nmethod::InvalidationReason::C1_PREDICATE_FAILED_TRAP);
14901490

14911491
methodHandle m(current, nm->method());
14921492
MethodData* mdo = m->method_data();

src/hotspot/share/ci/ciReplay.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -802,7 +802,7 @@ class CompileReplay : public StackObj {
802802
// Make sure the existence of a prior compile doesn't stop this one
803803
nmethod* nm = (entry_bci != InvocationEntryBci) ? method->lookup_osr_nmethod_for(entry_bci, comp_level, true) : method->code();
804804
if (nm != nullptr) {
805-
nm->make_not_entrant(nmethod::ChangeReason::CI_replay);
805+
nm->make_not_entrant(nmethod::InvalidationReason::CI_REPLAY);
806806
}
807807
replay_state = this;
808808
CompileBroker::compile_method(methodHandle(THREAD, method), entry_bci, comp_level,

src/hotspot/share/code/codeCache.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1361,7 +1361,7 @@ void CodeCache::make_marked_nmethods_deoptimized() {
13611361
while(iter.next()) {
13621362
nmethod* nm = iter.method();
13631363
if (nm->is_marked_for_deoptimization() && !nm->has_been_deoptimized() && nm->can_be_deoptimized()) {
1364-
nm->make_not_entrant(nmethod::ChangeReason::marked_for_deoptimization);
1364+
nm->make_not_entrant(nmethod::InvalidationReason::MARKED_FOR_DEOPTIMIZATION);
13651365
nm->make_deoptimized();
13661366
}
13671367
}

src/hotspot/share/code/nmethod.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1975,12 +1975,12 @@ void nmethod::invalidate_osr_method() {
19751975
}
19761976
}
19771977

1978-
void nmethod::log_state_change(ChangeReason change_reason) const {
1978+
void nmethod::log_state_change(InvalidationReason invalidation_reason) const {
19791979
if (LogCompilation) {
19801980
if (xtty != nullptr) {
19811981
ttyLocker ttyl; // keep the following output all in one block
19821982
xtty->begin_elem("make_not_entrant thread='%zu' reason='%s'",
1983-
os::current_thread_id(), change_reason_to_string(change_reason));
1983+
os::current_thread_id(), invalidation_reason_to_string(invalidation_reason));
19841984
log_identity(xtty);
19851985
xtty->stamp();
19861986
xtty->end_elem();
@@ -1989,7 +1989,7 @@ void nmethod::log_state_change(ChangeReason change_reason) const {
19891989

19901990
ResourceMark rm;
19911991
stringStream ss(NEW_RESOURCE_ARRAY(char, 256), 256);
1992-
ss.print("made not entrant: %s", change_reason_to_string(change_reason));
1992+
ss.print("made not entrant: %s", invalidation_reason_to_string(invalidation_reason));
19931993

19941994
CompileTask::print_ul(this, ss.freeze());
19951995
if (PrintCompilation) {
@@ -2004,7 +2004,7 @@ void nmethod::unlink_from_method() {
20042004
}
20052005

20062006
// Invalidate code
2007-
bool nmethod::make_not_entrant(ChangeReason change_reason) {
2007+
bool nmethod::make_not_entrant(InvalidationReason invalidation_reason) {
20082008
// This can be called while the system is already at a safepoint which is ok
20092009
NoSafepointVerifier nsv;
20102010

@@ -2073,7 +2073,7 @@ bool nmethod::make_not_entrant(ChangeReason change_reason) {
20732073
assert(success, "Transition can't fail");
20742074

20752075
// Log the transition once
2076-
log_state_change(change_reason);
2076+
log_state_change(invalidation_reason);
20772077

20782078
// Remove nmethod from method.
20792079
unlink_from_method();
@@ -2084,7 +2084,7 @@ bool nmethod::make_not_entrant(ChangeReason change_reason) {
20842084
// Invalidate can't occur while holding the NMethodState_lock
20852085
JVMCINMethodData* nmethod_data = jvmci_nmethod_data();
20862086
if (nmethod_data != nullptr) {
2087-
nmethod_data->invalidate_nmethod_mirror(this);
2087+
nmethod_data->invalidate_nmethod_mirror(this, invalidation_reason);
20882088
}
20892089
#endif
20902090

@@ -2122,7 +2122,9 @@ void nmethod::unlink() {
21222122
// Clear the link between this nmethod and a HotSpotNmethod mirror
21232123
JVMCINMethodData* nmethod_data = jvmci_nmethod_data();
21242124
if (nmethod_data != nullptr) {
2125-
nmethod_data->invalidate_nmethod_mirror(this);
2125+
nmethod_data->invalidate_nmethod_mirror(this, is_cold() ?
2126+
nmethod::InvalidationReason::UNLOADING_COLD :
2127+
nmethod::InvalidationReason::UNLOADING);
21262128
}
21272129
#endif
21282130

src/hotspot/share/code/nmethod.hpp

Lines changed: 52 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -471,77 +471,74 @@ class nmethod : public CodeBlob {
471471
void oops_do_set_strong_done(nmethod* old_head);
472472

473473
public:
474-
enum class ChangeReason : u1 {
475-
C1_codepatch,
476-
C1_deoptimize,
477-
C1_deoptimize_for_patching,
478-
C1_predicate_failed_trap,
479-
CI_replay,
480-
JVMCI_invalidate_nmethod,
481-
JVMCI_invalidate_nmethod_mirror,
482-
JVMCI_materialize_virtual_object,
483-
JVMCI_new_installation,
484-
JVMCI_register_method,
485-
JVMCI_replacing_with_new_code,
486-
JVMCI_reprofile,
487-
marked_for_deoptimization,
488-
missing_exception_handler,
489-
not_used,
490-
OSR_invalidation_back_branch,
491-
OSR_invalidation_for_compiling_with_C1,
492-
OSR_invalidation_of_lower_level,
493-
set_native_function,
494-
uncommon_trap,
495-
whitebox_deoptimization,
496-
zombie,
474+
// If you change anything in this enum please patch
475+
// vmStructs_jvmci.cpp accordingly.
476+
enum class InvalidationReason : s1 {
477+
NOT_INVALIDATED = -1,
478+
C1_CODEPATCH,
479+
C1_DEOPTIMIZE,
480+
C1_DEOPTIMIZE_FOR_PATCHING,
481+
C1_PREDICATE_FAILED_TRAP,
482+
CI_REPLAY,
483+
UNLOADING,
484+
UNLOADING_COLD,
485+
JVMCI_INVALIDATE,
486+
JVMCI_MATERIALIZE_VIRTUAL_OBJECT,
487+
JVMCI_REPLACED_WITH_NEW_CODE,
488+
JVMCI_REPROFILE,
489+
MARKED_FOR_DEOPTIMIZATION,
490+
MISSING_EXCEPTION_HANDLER,
491+
NOT_USED,
492+
OSR_INVALIDATION_BACK_BRANCH,
493+
OSR_INVALIDATION_FOR_COMPILING_WITH_C1,
494+
OSR_INVALIDATION_OF_LOWER_LEVEL,
495+
SET_NATIVE_FUNCTION,
496+
UNCOMMON_TRAP,
497+
WHITEBOX_DEOPTIMIZATION,
498+
ZOMBIE,
499+
INVALIDATION_REASONS_COUNT
497500
};
498501

499502

500-
static const char* change_reason_to_string(ChangeReason change_reason) {
501-
switch (change_reason) {
502-
case ChangeReason::C1_codepatch:
503+
static const char* invalidation_reason_to_string(InvalidationReason invalidation_reason) {
504+
switch (invalidation_reason) {
505+
case InvalidationReason::C1_CODEPATCH:
503506
return "C1 code patch";
504-
case ChangeReason::C1_deoptimize:
507+
case InvalidationReason::C1_DEOPTIMIZE:
505508
return "C1 deoptimized";
506-
case ChangeReason::C1_deoptimize_for_patching:
509+
case InvalidationReason::C1_DEOPTIMIZE_FOR_PATCHING:
507510
return "C1 deoptimize for patching";
508-
case ChangeReason::C1_predicate_failed_trap:
511+
case InvalidationReason::C1_PREDICATE_FAILED_TRAP:
509512
return "C1 predicate failed trap";
510-
case ChangeReason::CI_replay:
513+
case InvalidationReason::CI_REPLAY:
511514
return "CI replay";
512-
case ChangeReason::JVMCI_invalidate_nmethod:
513-
return "JVMCI invalidate nmethod";
514-
case ChangeReason::JVMCI_invalidate_nmethod_mirror:
515-
return "JVMCI invalidate nmethod mirror";
516-
case ChangeReason::JVMCI_materialize_virtual_object:
515+
case InvalidationReason::JVMCI_INVALIDATE:
516+
return "JVMCI invalidate";
517+
case InvalidationReason::JVMCI_MATERIALIZE_VIRTUAL_OBJECT:
517518
return "JVMCI materialize virtual object";
518-
case ChangeReason::JVMCI_new_installation:
519-
return "JVMCI new installation";
520-
case ChangeReason::JVMCI_register_method:
521-
return "JVMCI register method";
522-
case ChangeReason::JVMCI_replacing_with_new_code:
523-
return "JVMCI replacing with new code";
524-
case ChangeReason::JVMCI_reprofile:
519+
case InvalidationReason::JVMCI_REPLACED_WITH_NEW_CODE:
520+
return "JVMCI replaced with new code";
521+
case InvalidationReason::JVMCI_REPROFILE:
525522
return "JVMCI reprofile";
526-
case ChangeReason::marked_for_deoptimization:
523+
case InvalidationReason::MARKED_FOR_DEOPTIMIZATION:
527524
return "marked for deoptimization";
528-
case ChangeReason::missing_exception_handler:
525+
case InvalidationReason::MISSING_EXCEPTION_HANDLER:
529526
return "missing exception handler";
530-
case ChangeReason::not_used:
527+
case InvalidationReason::NOT_USED:
531528
return "not used";
532-
case ChangeReason::OSR_invalidation_back_branch:
529+
case InvalidationReason::OSR_INVALIDATION_BACK_BRANCH:
533530
return "OSR invalidation back branch";
534-
case ChangeReason::OSR_invalidation_for_compiling_with_C1:
531+
case InvalidationReason::OSR_INVALIDATION_FOR_COMPILING_WITH_C1:
535532
return "OSR invalidation for compiling with C1";
536-
case ChangeReason::OSR_invalidation_of_lower_level:
533+
case InvalidationReason::OSR_INVALIDATION_OF_LOWER_LEVEL:
537534
return "OSR invalidation of lower level";
538-
case ChangeReason::set_native_function:
535+
case InvalidationReason::SET_NATIVE_FUNCTION:
539536
return "set native function";
540-
case ChangeReason::uncommon_trap:
537+
case InvalidationReason::UNCOMMON_TRAP:
541538
return "uncommon trap";
542-
case ChangeReason::whitebox_deoptimization:
539+
case InvalidationReason::WHITEBOX_DEOPTIMIZATION:
543540
return "whitebox deoptimization";
544-
case ChangeReason::zombie:
541+
case InvalidationReason::ZOMBIE:
545542
return "zombie";
546543
default: {
547544
assert(false, "Unhandled reason");
@@ -712,8 +709,8 @@ class nmethod : public CodeBlob {
712709
// alive. It is used when an uncommon trap happens. Returns true
713710
// if this thread changed the state of the nmethod or false if
714711
// another thread performed the transition.
715-
bool make_not_entrant(ChangeReason change_reason);
716-
bool make_not_used() { return make_not_entrant(ChangeReason::not_used); }
712+
bool make_not_entrant(InvalidationReason invalidation_reason);
713+
bool make_not_used() { return make_not_entrant(InvalidationReason::NOT_USED); }
717714

718715
bool is_marked_for_deoptimization() const { return deoptimization_status() != not_marked; }
719716
bool has_been_deoptimized() const { return deoptimization_status() == deoptimize_done; }
@@ -1026,7 +1023,7 @@ class nmethod : public CodeBlob {
10261023
// Logging
10271024
void log_identity(xmlStream* log) const;
10281025
void log_new_nmethod() const;
1029-
void log_state_change(ChangeReason change_reason) const;
1026+
void log_state_change(InvalidationReason invalidation_reason) const;
10301027

10311028
// Prints block-level comments, including nmethod specific block labels:
10321029
void print_nmethod_labels(outputStream* stream, address block_begin, bool print_section_labels=true) const;

src/hotspot/share/compiler/compilationPolicy.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@ void CompilationPolicy::compile(const methodHandle& mh, int bci, CompLevel level
924924
nmethod* osr_nm = mh->lookup_osr_nmethod_for(bci, CompLevel_simple, false);
925925
if (osr_nm != nullptr && osr_nm->comp_level() > CompLevel_simple) {
926926
// Invalidate the existing OSR nmethod so that a compile at CompLevel_simple is permitted.
927-
osr_nm->make_not_entrant(nmethod::ChangeReason::OSR_invalidation_for_compiling_with_C1);
927+
osr_nm->make_not_entrant(nmethod::InvalidationReason::OSR_INVALIDATION_FOR_COMPILING_WITH_C1);
928928
}
929929
compile(mh, bci, CompLevel_simple, THREAD);
930930
}
@@ -1516,7 +1516,7 @@ void CompilationPolicy::method_back_branch_event(const methodHandle& mh, const m
15161516
int osr_bci = nm->is_osr_method() ? nm->osr_entry_bci() : InvocationEntryBci;
15171517
print_event(MAKE_NOT_ENTRANT, mh(), mh(), osr_bci, level);
15181518
}
1519-
nm->make_not_entrant(nmethod::ChangeReason::OSR_invalidation_back_branch);
1519+
nm->make_not_entrant(nmethod::InvalidationReason::OSR_INVALIDATION_BACK_BRANCH);
15201520
}
15211521
}
15221522
// Fix up next_level if necessary to avoid deopts

src/hotspot/share/jvmci/jvmciCompilerToVM.cpp

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,7 +1207,7 @@ C2V_VMENTRY_0(jint, installCode0, (JNIEnv *env, jobject,
12071207
assert(JVMCIENV->isa_HotSpotNmethod(installed_code_handle), "wrong type");
12081208
// Clear the link to an old nmethod first
12091209
JVMCIObject nmethod_mirror = installed_code_handle;
1210-
JVMCIENV->invalidate_nmethod_mirror(nmethod_mirror, true, nmethod::ChangeReason::JVMCI_replacing_with_new_code, JVMCI_CHECK_0);
1210+
JVMCIENV->invalidate_nmethod_mirror(nmethod_mirror, true, nmethod::InvalidationReason::JVMCI_REPLACED_WITH_NEW_CODE, JVMCI_CHECK_0);
12111211
} else {
12121212
assert(JVMCIENV->isa_InstalledCode(installed_code_handle), "wrong type");
12131213
}
@@ -1218,6 +1218,14 @@ C2V_VMENTRY_0(jint, installCode0, (JNIEnv *env, jobject,
12181218
return result;
12191219
C2V_END
12201220

1221+
C2V_VMENTRY_0(jobject, getInvalidationReasonDescription, (JNIEnv *env, jobject, jint invalidation_reason))
1222+
HandleMark hm(THREAD);
1223+
JNIHandleMark jni_hm(thread);
1224+
nmethod::InvalidationReason reason = static_cast<nmethod::InvalidationReason>(invalidation_reason);
1225+
JVMCIObject desc = JVMCIENV->create_string(nmethod::invalidation_reason_to_string(reason), JVMCI_CHECK_NULL);
1226+
return JVMCIENV->get_jobject(desc);
1227+
C2V_END
1228+
12211229
C2V_VMENTRY(void, resetCompilationStatistics, (JNIEnv* env, jobject))
12221230
JVMCICompiler* compiler = JVMCICompiler::instance(true, CHECK);
12231231
CompilerStatistics* stats = compiler->stats();
@@ -1383,7 +1391,7 @@ C2V_VMENTRY(void, reprofile, (JNIEnv* env, jobject, ARGUMENT_PAIR(method)))
13831391

13841392
nmethod* code = method->code();
13851393
if (code != nullptr) {
1386-
code->make_not_entrant(nmethod::ChangeReason::JVMCI_reprofile);
1394+
code->make_not_entrant(nmethod::InvalidationReason::JVMCI_REPROFILE);
13871395
}
13881396

13891397
MethodData* method_data = method->method_data();
@@ -1396,9 +1404,14 @@ C2V_VMENTRY(void, reprofile, (JNIEnv* env, jobject, ARGUMENT_PAIR(method)))
13961404
C2V_END
13971405

13981406

1399-
C2V_VMENTRY(void, invalidateHotSpotNmethod, (JNIEnv* env, jobject, jobject hs_nmethod, jboolean deoptimize))
1407+
C2V_VMENTRY(void, invalidateHotSpotNmethod, (JNIEnv* env, jobject, jobject hs_nmethod, jboolean deoptimize, jint invalidation_reason))
1408+
int first = static_cast<int>(nmethod::InvalidationReason::C1_CODEPATCH);
1409+
int last = static_cast<int>(nmethod::InvalidationReason::INVALIDATION_REASONS_COUNT);
1410+
if (invalidation_reason < first || invalidation_reason >= last) {
1411+
JVMCI_THROW_MSG(IllegalArgumentException, err_msg("Invalid invalidation_reason: %d", invalidation_reason));
1412+
}
14001413
JVMCIObject nmethod_mirror = JVMCIENV->wrap(hs_nmethod);
1401-
JVMCIENV->invalidate_nmethod_mirror(nmethod_mirror, deoptimize, nmethod::ChangeReason::JVMCI_invalidate_nmethod, JVMCI_CHECK);
1414+
JVMCIENV->invalidate_nmethod_mirror(nmethod_mirror, deoptimize, static_cast<nmethod::InvalidationReason>(invalidation_reason), JVMCI_CHECK);
14021415
C2V_END
14031416

14041417
C2V_VMENTRY_NULL(jlongArray, collectCounters, (JNIEnv* env, jobject))
@@ -1823,7 +1836,7 @@ C2V_VMENTRY(void, materializeVirtualObjects, (JNIEnv* env, jobject, jobject _hs_
18231836
if (!fst.current()->is_compiled_frame()) {
18241837
JVMCI_THROW_MSG(IllegalStateException, "compiled stack frame expected");
18251838
}
1826-
fst.current()->cb()->as_nmethod()->make_not_entrant(nmethod::ChangeReason::JVMCI_materialize_virtual_object);
1839+
fst.current()->cb()->as_nmethod()->make_not_entrant(nmethod::InvalidationReason::JVMCI_MATERIALIZE_VIRTUAL_OBJECT);
18271840
}
18281841
Deoptimization::deoptimize(thread, *fst.current(), Deoptimization::Reason_none);
18291842
// look for the frame again as it has been updated by deopt (pc, deopt state...)
@@ -3352,6 +3365,7 @@ JNINativeMethod CompilerToVM::methods[] = {
33523365
{CC "getResolvedJavaType0", CC "(Ljava/lang/Object;JZ)" HS_KLASS, FN_PTR(getResolvedJavaType0)},
33533366
{CC "readConfiguration", CC "()[" OBJECT, FN_PTR(readConfiguration)},
33543367
{CC "installCode0", CC "(JJZ" HS_COMPILED_CODE "[" OBJECT INSTALLED_CODE "J[B)I", FN_PTR(installCode0)},
3368+
{CC "getInvalidationReasonDescription", CC "(I)" STRING, FN_PTR(getInvalidationReasonDescription)},
33553369
{CC "getInstallCodeFlags", CC "()I", FN_PTR(getInstallCodeFlags)},
33563370
{CC "resetCompilationStatistics", CC "()V", FN_PTR(resetCompilationStatistics)},
33573371
{CC "disassembleCodeBlob", CC "(" INSTALLED_CODE ")" STRING, FN_PTR(disassembleCodeBlob)},
@@ -3360,7 +3374,7 @@ JNINativeMethod CompilerToVM::methods[] = {
33603374
{CC "getLocalVariableTableStart", CC "(" HS_METHOD2 ")J", FN_PTR(getLocalVariableTableStart)},
33613375
{CC "getLocalVariableTableLength", CC "(" HS_METHOD2 ")I", FN_PTR(getLocalVariableTableLength)},
33623376
{CC "reprofile", CC "(" HS_METHOD2 ")V", FN_PTR(reprofile)},
3363-
{CC "invalidateHotSpotNmethod", CC "(" HS_NMETHOD "Z)V", FN_PTR(invalidateHotSpotNmethod)},
3377+
{CC "invalidateHotSpotNmethod", CC "(" HS_NMETHOD "ZI)V", FN_PTR(invalidateHotSpotNmethod)},
33643378
{CC "collectCounters", CC "()[J", FN_PTR(collectCounters)},
33653379
{CC "getCountersSize", CC "()I", FN_PTR(getCountersSize)},
33663380
{CC "setCountersSize", CC "(I)Z", FN_PTR(setCountersSize)},

src/hotspot/share/jvmci/jvmciEnv.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1749,7 +1749,7 @@ void JVMCIEnv::initialize_installed_code(JVMCIObject installed_code, CodeBlob* c
17491749
}
17501750

17511751

1752-
void JVMCIEnv::invalidate_nmethod_mirror(JVMCIObject mirror, bool deoptimize, nmethod::ChangeReason change_reason, JVMCI_TRAPS) {
1752+
void JVMCIEnv::invalidate_nmethod_mirror(JVMCIObject mirror, bool deoptimize, nmethod::InvalidationReason invalidation_reason, JVMCI_TRAPS) {
17531753
if (mirror.is_null()) {
17541754
JVMCI_THROW(NullPointerException);
17551755
}
@@ -1772,7 +1772,7 @@ void JVMCIEnv::invalidate_nmethod_mirror(JVMCIObject mirror, bool deoptimize, nm
17721772

17731773
if (!deoptimize) {
17741774
// Prevent future executions of the nmethod but let current executions complete.
1775-
nm->make_not_entrant(change_reason);
1775+
nm->make_not_entrant(invalidation_reason);
17761776

17771777
// Do not clear the address field here as the Java code may still
17781778
// want to later call this method with deoptimize == true. That requires
@@ -1781,7 +1781,7 @@ void JVMCIEnv::invalidate_nmethod_mirror(JVMCIObject mirror, bool deoptimize, nm
17811781
// Deoptimize the nmethod immediately.
17821782
DeoptimizationScope deopt_scope;
17831783
deopt_scope.mark(nm);
1784-
nm->make_not_entrant(change_reason);
1784+
nm->make_not_entrant(invalidation_reason);
17851785
nm->make_deoptimized();
17861786
deopt_scope.deoptimize_marked();
17871787

0 commit comments

Comments
 (0)