8059334: nsk/jvmti/scenarios/hotswap/HS201/hs201t001 fails with exit code 0 after timeout

Check if we are in "interp only" mode before returning an nm for an OSR request

Reviewed-by: sspitsyn, dcubed, kvn
This commit is contained in:
Chris Plummer 2017-11-07 14:13:18 -08:00
parent 3c76c33dba
commit 5865d3062f

View File

@ -921,6 +921,14 @@ nmethod* InterpreterRuntime::frequency_counter_overflow(JavaThread* thread, addr
int bci = method->bci_from(last_frame.bcp());
nm = method->lookup_osr_nmethod_for(bci, CompLevel_none, false);
}
if (nm != NULL && thread->is_interp_only_mode()) {
// Normally we never get an nm if is_interp_only_mode() is true, because
// policy()->event has a check for this and won't compile the method when
// true. However, it's possible for is_interp_only_mode() to become true
// during the compilation. We don't want to return the nm in that case
// because we want to continue to execute interpreted.
nm = NULL;
}
#ifndef PRODUCT
if (TraceOnStackReplacement) {
if (nm != NULL) {