8282883: Use JVM_LEAF to avoid ThreadStateTransition for some simple JVM entries

Reviewed-by: dholmes, shade
This commit is contained in:
Yi Yang 2022-03-11 02:27:01 +00:00
parent bb7ee5a04a
commit a5a1a32db6

View file

@ -487,7 +487,7 @@ JVM_ENTRY_NO_ENV(jint, JVM_ActiveProcessorCount(void))
return os::active_processor_count(); return os::active_processor_count();
JVM_END JVM_END
JVM_ENTRY_NO_ENV(jboolean, JVM_IsUseContainerSupport(void)) JVM_LEAF(jboolean, JVM_IsUseContainerSupport(void))
#ifdef LINUX #ifdef LINUX
if (UseContainerSupport) { if (UseContainerSupport) {
return JNI_TRUE; return JNI_TRUE;
@ -690,7 +690,7 @@ JVM_ENTRY(void, JVM_ReportFinalizationComplete(JNIEnv * env, jobject finalizee))
MANAGEMENT_ONLY(FinalizerService::on_complete(JNIHandles::resolve_non_null(finalizee), THREAD);) MANAGEMENT_ONLY(FinalizerService::on_complete(JNIHandles::resolve_non_null(finalizee), THREAD);)
JVM_END JVM_END
JVM_ENTRY(jboolean, JVM_IsFinalizationEnabled(JNIEnv * env)) JVM_LEAF(jboolean, JVM_IsFinalizationEnabled(JNIEnv * env))
return InstanceKlass::is_finalization_enabled(); return InstanceKlass::is_finalization_enabled();
JVM_END JVM_END
@ -3035,7 +3035,7 @@ JVM_ENTRY(void, JVM_SetThreadPriority(JNIEnv* env, jobject jthread, jint prio))
JVM_END JVM_END
JVM_ENTRY(void, JVM_Yield(JNIEnv *env, jclass threadClass)) JVM_LEAF(void, JVM_Yield(JNIEnv *env, jclass threadClass))
if (os::dont_yield()) return; if (os::dont_yield()) return;
HOTSPOT_THREAD_YIELD(); HOTSPOT_THREAD_YIELD();
os::naked_yield(); os::naked_yield();
@ -3643,11 +3643,11 @@ JVM_ENTRY(jclass, JVM_LookupLambdaProxyClassFromArchive(JNIEnv* env,
#endif // INCLUDE_CDS #endif // INCLUDE_CDS
JVM_END JVM_END
JVM_ENTRY(jboolean, JVM_IsCDSDumpingEnabled(JNIEnv* env)) JVM_LEAF(jboolean, JVM_IsCDSDumpingEnabled(JNIEnv* env))
return Arguments::is_dumping_archive(); return Arguments::is_dumping_archive();
JVM_END JVM_END
JVM_ENTRY(jboolean, JVM_IsSharingEnabled(JNIEnv* env)) JVM_LEAF(jboolean, JVM_IsSharingEnabled(JNIEnv* env))
return UseSharedSpaces; return UseSharedSpaces;
JVM_END JVM_END
@ -3673,7 +3673,7 @@ JVM_ENTRY_NO_ENV(jlong, JVM_GetRandomSeedForDumping())
} }
JVM_END JVM_END
JVM_ENTRY(jboolean, JVM_IsDumpingClassList(JNIEnv *env)) JVM_LEAF(jboolean, JVM_IsDumpingClassList(JNIEnv *env))
#if INCLUDE_CDS #if INCLUDE_CDS
return ClassListWriter::is_enabled() || DynamicDumpSharedSpaces; return ClassListWriter::is_enabled() || DynamicDumpSharedSpaces;
#else #else
@ -3782,7 +3782,7 @@ JVM_ENTRY(jobjectArray, JVM_DumpThreads(JNIEnv *env, jclass threadClass, jobject
JVM_END JVM_END
// JVM monitoring and management support // JVM monitoring and management support
JVM_ENTRY_NO_ENV(void*, JVM_GetManagement(jint version)) JVM_LEAF(void*, JVM_GetManagement(jint version))
return Management::get_jmm_interface(version); return Management::get_jmm_interface(version);
JVM_END JVM_END
@ -3871,7 +3871,7 @@ JVM_ENTRY(jobjectArray, JVM_GetVmArguments(JNIEnv *env))
return (jobjectArray) JNIHandles::make_local(THREAD, result_h()); return (jobjectArray) JNIHandles::make_local(THREAD, result_h());
JVM_END JVM_END
JVM_ENTRY_NO_ENV(jint, JVM_FindSignal(const char *name)) JVM_LEAF(jint, JVM_FindSignal(const char *name))
return os::get_signal_number(name); return os::get_signal_number(name);
JVM_END JVM_END