mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 22:34:27 +02:00
Merge
This commit is contained in:
commit
7bb3af5d16
276 changed files with 9876 additions and 4862 deletions
|
@ -89,6 +89,10 @@ WB_ENTRY(jint, WB_GetVMPageSize(JNIEnv* env, jobject o))
|
|||
return os::vm_page_size();
|
||||
WB_END
|
||||
|
||||
WB_ENTRY(jlong, WB_GetVMLargePageSize(JNIEnv* env, jobject o))
|
||||
return os::large_page_size();
|
||||
WB_END
|
||||
|
||||
class WBIsKlassAliveClosure : public KlassClosure {
|
||||
Symbol* _name;
|
||||
bool _found;
|
||||
|
@ -819,46 +823,9 @@ WB_ENTRY(void, WB_UnlockCompilation(JNIEnv* env, jobject o))
|
|||
mo.notify_all();
|
||||
WB_END
|
||||
|
||||
void WhiteBox::sweeper_thread_entry(JavaThread* thread, TRAPS) {
|
||||
guarantee(WhiteBoxAPI, "internal testing API :: WhiteBox has to be enabled");
|
||||
{
|
||||
MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
|
||||
NMethodSweeper::_should_sweep = true;
|
||||
}
|
||||
NMethodSweeper::possibly_sweep();
|
||||
}
|
||||
|
||||
JavaThread* WhiteBox::create_sweeper_thread(TRAPS) {
|
||||
// create sweeper thread w/ custom entry -- one iteration instead of loop
|
||||
CodeCacheSweeperThread* sweeper_thread = new CodeCacheSweeperThread();
|
||||
sweeper_thread->set_entry_point(&WhiteBox::sweeper_thread_entry);
|
||||
|
||||
// create j.l.Thread object and associate it w/ sweeper thread
|
||||
{
|
||||
// inherit deamon property from current thread
|
||||
bool is_daemon = java_lang_Thread::is_daemon(JavaThread::current()->threadObj());
|
||||
|
||||
HandleMark hm(THREAD);
|
||||
Handle thread_group(THREAD, Universe::system_thread_group());
|
||||
const char* name = "WB Sweeper thread";
|
||||
sweeper_thread->allocate_threadObj(thread_group, name, is_daemon, THREAD);
|
||||
}
|
||||
|
||||
{
|
||||
MutexLocker mu(Threads_lock, THREAD);
|
||||
Threads::add(sweeper_thread);
|
||||
}
|
||||
return sweeper_thread;
|
||||
}
|
||||
|
||||
WB_ENTRY(jobject, WB_ForceNMethodSweep(JNIEnv* env, jobject o))
|
||||
JavaThread* sweeper_thread = WhiteBox::create_sweeper_thread(Thread::current());
|
||||
if (sweeper_thread == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
jobject result = JNIHandles::make_local(env, sweeper_thread->threadObj());
|
||||
Thread::start(sweeper_thread);
|
||||
return result;
|
||||
WB_ENTRY(void, WB_ForceNMethodSweep(JNIEnv* env, jobject o))
|
||||
// Force a code cache sweep and block until it finished
|
||||
NMethodSweeper::force_sweep();
|
||||
WB_END
|
||||
|
||||
WB_ENTRY(jboolean, WB_IsInStringTable(JNIEnv* env, jobject o, jstring javaString))
|
||||
|
@ -1296,19 +1263,20 @@ void WhiteBox::register_methods(JNIEnv* env, jclass wbclass, JavaThread* thread,
|
|||
#define CC (char*)
|
||||
|
||||
static JNINativeMethod methods[] = {
|
||||
{CC"getObjectAddress", CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectAddress },
|
||||
{CC"getObjectSize", CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectSize },
|
||||
{CC"isObjectInOldGen", CC"(Ljava/lang/Object;)Z", (void*)&WB_isObjectInOldGen },
|
||||
{CC"getObjectAddress0", CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectAddress },
|
||||
{CC"getObjectSize0", CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectSize },
|
||||
{CC"isObjectInOldGen0", CC"(Ljava/lang/Object;)Z", (void*)&WB_isObjectInOldGen },
|
||||
{CC"getHeapOopSize", CC"()I", (void*)&WB_GetHeapOopSize },
|
||||
{CC"getVMPageSize", CC"()I", (void*)&WB_GetVMPageSize },
|
||||
{CC"getVMLargePageSize", CC"()J", (void*)&WB_GetVMLargePageSize},
|
||||
{CC"isClassAlive0", CC"(Ljava/lang/String;)Z", (void*)&WB_IsClassAlive },
|
||||
{CC"parseCommandLine",
|
||||
{CC"parseCommandLine0",
|
||||
CC"(Ljava/lang/String;C[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;",
|
||||
(void*) &WB_ParseCommandLine
|
||||
},
|
||||
{CC"addToBootstrapClassLoaderSearch", CC"(Ljava/lang/String;)V",
|
||||
{CC"addToBootstrapClassLoaderSearch0", CC"(Ljava/lang/String;)V",
|
||||
(void*)&WB_AddToBootstrapClassLoaderSearch},
|
||||
{CC"addToSystemClassLoaderSearch", CC"(Ljava/lang/String;)V",
|
||||
{CC"addToSystemClassLoaderSearch0", CC"(Ljava/lang/String;)V",
|
||||
(void*)&WB_AddToSystemClassLoaderSearch},
|
||||
{CC"getCompressedOopsMaxHeapSize", CC"()J",
|
||||
(void*)&WB_GetCompressedOopsMaxHeapSize},
|
||||
|
@ -1318,7 +1286,7 @@ static JNINativeMethod methods[] = {
|
|||
{CC"stressVirtualSpaceResize",CC"(JJJ)I", (void*)&WB_StressVirtualSpaceResize},
|
||||
#if INCLUDE_ALL_GCS
|
||||
{CC"g1InConcurrentMark", CC"()Z", (void*)&WB_G1InConcurrentMark},
|
||||
{CC"g1IsHumongous", CC"(Ljava/lang/Object;)Z", (void*)&WB_G1IsHumongous },
|
||||
{CC"g1IsHumongous0", CC"(Ljava/lang/Object;)Z", (void*)&WB_G1IsHumongous },
|
||||
{CC"g1NumMaxRegions", CC"()J", (void*)&WB_G1NumMaxRegions },
|
||||
{CC"g1NumFreeRegions", CC"()J", (void*)&WB_G1NumFreeRegions },
|
||||
{CC"g1RegionSize", CC"()I", (void*)&WB_G1RegionSize },
|
||||
|
@ -1339,29 +1307,29 @@ static JNINativeMethod methods[] = {
|
|||
#endif // INCLUDE_NMT
|
||||
{CC"deoptimizeFrames", CC"(Z)I", (void*)&WB_DeoptimizeFrames },
|
||||
{CC"deoptimizeAll", CC"()V", (void*)&WB_DeoptimizeAll },
|
||||
{CC"deoptimizeMethod", CC"(Ljava/lang/reflect/Executable;Z)I",
|
||||
{CC"deoptimizeMethod0", CC"(Ljava/lang/reflect/Executable;Z)I",
|
||||
(void*)&WB_DeoptimizeMethod },
|
||||
{CC"isMethodCompiled", CC"(Ljava/lang/reflect/Executable;Z)Z",
|
||||
{CC"isMethodCompiled0", CC"(Ljava/lang/reflect/Executable;Z)Z",
|
||||
(void*)&WB_IsMethodCompiled },
|
||||
{CC"isMethodCompilable", CC"(Ljava/lang/reflect/Executable;IZ)Z",
|
||||
{CC"isMethodCompilable0", CC"(Ljava/lang/reflect/Executable;IZ)Z",
|
||||
(void*)&WB_IsMethodCompilable},
|
||||
{CC"isMethodQueuedForCompilation",
|
||||
{CC"isMethodQueuedForCompilation0",
|
||||
CC"(Ljava/lang/reflect/Executable;)Z", (void*)&WB_IsMethodQueuedForCompilation},
|
||||
{CC"makeMethodNotCompilable",
|
||||
{CC"makeMethodNotCompilable0",
|
||||
CC"(Ljava/lang/reflect/Executable;IZ)V", (void*)&WB_MakeMethodNotCompilable},
|
||||
{CC"testSetDontInlineMethod",
|
||||
{CC"testSetDontInlineMethod0",
|
||||
CC"(Ljava/lang/reflect/Executable;Z)Z", (void*)&WB_TestSetDontInlineMethod},
|
||||
{CC"getMethodCompilationLevel",
|
||||
{CC"getMethodCompilationLevel0",
|
||||
CC"(Ljava/lang/reflect/Executable;Z)I", (void*)&WB_GetMethodCompilationLevel},
|
||||
{CC"getMethodEntryBci",
|
||||
{CC"getMethodEntryBci0",
|
||||
CC"(Ljava/lang/reflect/Executable;)I", (void*)&WB_GetMethodEntryBci},
|
||||
{CC"getCompileQueueSize",
|
||||
CC"(I)I", (void*)&WB_GetCompileQueueSize},
|
||||
{CC"testSetForceInlineMethod",
|
||||
{CC"testSetForceInlineMethod0",
|
||||
CC"(Ljava/lang/reflect/Executable;Z)Z", (void*)&WB_TestSetForceInlineMethod},
|
||||
{CC"enqueueMethodForCompilation",
|
||||
{CC"enqueueMethodForCompilation0",
|
||||
CC"(Ljava/lang/reflect/Executable;II)Z", (void*)&WB_EnqueueMethodForCompilation},
|
||||
{CC"clearMethodState",
|
||||
{CC"clearMethodState0",
|
||||
CC"(Ljava/lang/reflect/Executable;)V", (void*)&WB_ClearMethodState},
|
||||
{CC"lockCompilation", CC"()V", (void*)&WB_LockCompilation},
|
||||
{CC"unlockCompilation", CC"()V", (void*)&WB_UnlockCompilation},
|
||||
|
@ -1400,9 +1368,9 @@ static JNINativeMethod methods[] = {
|
|||
{CC"incMetaspaceCapacityUntilGC", CC"(J)J", (void*)&WB_IncMetaspaceCapacityUntilGC },
|
||||
{CC"metaspaceCapacityUntilGC", CC"()J", (void*)&WB_MetaspaceCapacityUntilGC },
|
||||
{CC"getCPUFeatures", CC"()Ljava/lang/String;", (void*)&WB_GetCPUFeatures },
|
||||
{CC"getNMethod", CC"(Ljava/lang/reflect/Executable;Z)[Ljava/lang/Object;",
|
||||
{CC"getNMethod0", CC"(Ljava/lang/reflect/Executable;Z)[Ljava/lang/Object;",
|
||||
(void*)&WB_GetNMethod },
|
||||
{CC"forceNMethodSweep0", CC"()Ljava/lang/Thread;", (void*)&WB_ForceNMethodSweep },
|
||||
{CC"forceNMethodSweep", CC"()V", (void*)&WB_ForceNMethodSweep },
|
||||
{CC"allocateCodeBlob", CC"(II)J", (void*)&WB_AllocateCodeBlob },
|
||||
{CC"freeCodeBlob", CC"(J)V", (void*)&WB_FreeCodeBlob },
|
||||
{CC"getCodeHeapEntries", CC"(I)[Ljava/lang/Object;",(void*)&WB_GetCodeHeapEntries },
|
||||
|
@ -1412,7 +1380,7 @@ static JNINativeMethod methods[] = {
|
|||
{CC"getThreadStackSize", CC"()J", (void*)&WB_GetThreadStackSize },
|
||||
{CC"getThreadRemainingStackSize", CC"()J", (void*)&WB_GetThreadRemainingStackSize },
|
||||
{CC"assertMatchingSafepointCalls", CC"(ZZ)V", (void*)&WB_AssertMatchingSafepointCalls },
|
||||
{CC"isMonitorInflated", CC"(Ljava/lang/Object;)Z", (void*)&WB_IsMonitorInflated },
|
||||
{CC"isMonitorInflated0", CC"(Ljava/lang/Object;)Z", (void*)&WB_IsMonitorInflated },
|
||||
{CC"forceSafepoint", CC"()V", (void*)&WB_ForceSafepoint },
|
||||
{CC"getMethodBooleanOption",
|
||||
CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)Ljava/lang/Boolean;",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue