< prev index next >

src/hotspot/share/prims/whitebox.cpp

Print this page
rev 49524 : imported patch 8200426-g1h-refactoring


 312   return wb_stress_virtual_space_resize((size_t) reserved_space_size,
 313                                         (size_t) magnitude, (size_t) iterations);
 314 WB_END
 315 
 316 WB_ENTRY(jboolean, WB_IsGCSupported(JNIEnv* env, jobject o, jint name))
 317   return GCConfig::is_gc_supported((CollectedHeap::Name)name);
 318 WB_END
 319 
 320 WB_ENTRY(jboolean, WB_IsGCSelected(JNIEnv* env, jobject o, jint name))
 321   return GCConfig::is_gc_selected((CollectedHeap::Name)name);
 322 WB_END
 323 
 324 WB_ENTRY(jboolean, WB_IsGCSelectedErgonomically(JNIEnv* env, jobject o))
 325   return GCConfig::is_gc_selected_ergonomically();
 326 WB_END
 327 
 328 WB_ENTRY(jboolean, WB_isObjectInOldGen(JNIEnv* env, jobject o, jobject obj))
 329   oop p = JNIHandles::resolve(obj);
 330 #if INCLUDE_ALL_GCS
 331   if (UseG1GC) {
 332     G1CollectedHeap* g1 = G1CollectedHeap::heap();
 333     const HeapRegion* hr = g1->heap_region_containing(p);
 334     if (hr == NULL) {
 335       return false;
 336     }
 337     return !(hr->is_young());
 338   } else if (UseParallelGC) {
 339     ParallelScavengeHeap* psh = ParallelScavengeHeap::heap();
 340     return !psh->is_in_young(p);
 341   }
 342 #endif // INCLUDE_ALL_GCS
 343   GenCollectedHeap* gch = GenCollectedHeap::heap();
 344   return !gch->is_in_young(p);
 345 WB_END
 346 
 347 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj))
 348   oop p = JNIHandles::resolve(obj);
 349   return p->size() * HeapWordSize;
 350 WB_END
 351 
 352 WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o))
 353   size_t alignment = Universe::heap()->collector_policy()->space_alignment();


 382     jstring phase = env->NewStringUTF(phases[i]);
 383     CHECK_JNI_EXCEPTION_(env, NULL);
 384     env->SetObjectArrayElement(result, i, phase);
 385     CHECK_JNI_EXCEPTION_(env, NULL);
 386   }
 387   env->PopLocalFrame(NULL);
 388 
 389   return result;
 390 WB_END
 391 
 392 WB_ENTRY(jboolean, WB_RequestConcurrentGCPhase(JNIEnv* env, jobject o, jstring name))
 393   Handle h_name(THREAD, JNIHandles::resolve(name));
 394   ResourceMark rm;
 395   const char* c_name = java_lang_String::as_utf8_string(h_name());
 396   return Universe::heap()->request_concurrent_phase(c_name);
 397 WB_END
 398 
 399 #if INCLUDE_ALL_GCS
 400 WB_ENTRY(jboolean, WB_G1IsHumongous(JNIEnv* env, jobject o, jobject obj))
 401   if (UseG1GC) {
 402     G1CollectedHeap* g1 = G1CollectedHeap::heap();
 403     oop result = JNIHandles::resolve(obj);
 404     const HeapRegion* hr = g1->heap_region_containing(result);
 405     return hr->is_humongous();
 406   }
 407   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1IsHumongous: G1 GC is not enabled");
 408 WB_END
 409 
 410 WB_ENTRY(jboolean, WB_G1BelongsToHumongousRegion(JNIEnv* env, jobject o, jlong addr))
 411   if (UseG1GC) {
 412     G1CollectedHeap* g1 = G1CollectedHeap::heap();
 413     const HeapRegion* hr = g1->heap_region_containing((void*) addr);
 414     return hr->is_humongous();
 415   }
 416   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1BelongsToHumongousRegion: G1 GC is not enabled");
 417 WB_END
 418 
 419 WB_ENTRY(jboolean, WB_G1BelongsToFreeRegion(JNIEnv* env, jobject o, jlong addr))
 420   if (UseG1GC) {
 421     G1CollectedHeap* g1 = G1CollectedHeap::heap();
 422     const HeapRegion* hr = g1->heap_region_containing((void*) addr);
 423     return hr->is_free();
 424   }
 425   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1BelongsToFreeRegion: G1 GC is not enabled");
 426 WB_END
 427 
 428 WB_ENTRY(jlong, WB_G1NumMaxRegions(JNIEnv* env, jobject o))
 429   if (UseG1GC) {
 430     G1CollectedHeap* g1 = G1CollectedHeap::heap();
 431     size_t nr = g1->max_regions();
 432     return (jlong)nr;
 433   }
 434   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NumMaxRegions: G1 GC is not enabled");
 435 WB_END
 436 
 437 WB_ENTRY(jlong, WB_G1NumFreeRegions(JNIEnv* env, jobject o))
 438   if (UseG1GC) {
 439     G1CollectedHeap* g1 = G1CollectedHeap::heap();
 440     size_t nr = g1->num_free_regions();
 441     return (jlong)nr;
 442   }
 443   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NumFreeRegions: G1 GC is not enabled");
 444 WB_END
 445 
 446 WB_ENTRY(jboolean, WB_G1InConcurrentMark(JNIEnv* env, jobject o))
 447   if (UseG1GC) {
 448     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 449     return g1h->concurrent_mark()->cm_thread()->during_cycle();
 450   }
 451   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1InConcurrentMark: G1 GC is not enabled");
 452 WB_END
 453 
 454 WB_ENTRY(jboolean, WB_G1StartMarkCycle(JNIEnv* env, jobject o))
 455   if (UseG1GC) {
 456     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 457     if (!g1h->concurrent_mark()->cm_thread()->during_cycle()) {
 458       g1h->collect(GCCause::_wb_conc_mark);
 459       return true;
 460     }




 312   return wb_stress_virtual_space_resize((size_t) reserved_space_size,
 313                                         (size_t) magnitude, (size_t) iterations);
 314 WB_END
 315 
 316 WB_ENTRY(jboolean, WB_IsGCSupported(JNIEnv* env, jobject o, jint name))
 317   return GCConfig::is_gc_supported((CollectedHeap::Name)name);
 318 WB_END
 319 
 320 WB_ENTRY(jboolean, WB_IsGCSelected(JNIEnv* env, jobject o, jint name))
 321   return GCConfig::is_gc_selected((CollectedHeap::Name)name);
 322 WB_END
 323 
 324 WB_ENTRY(jboolean, WB_IsGCSelectedErgonomically(JNIEnv* env, jobject o))
 325   return GCConfig::is_gc_selected_ergonomically();
 326 WB_END
 327 
 328 WB_ENTRY(jboolean, WB_isObjectInOldGen(JNIEnv* env, jobject o, jobject obj))
 329   oop p = JNIHandles::resolve(obj);
 330 #if INCLUDE_ALL_GCS
 331   if (UseG1GC) {
 332     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 333     const HeapRegion* hr = g1h->heap_region_containing(p);
 334     if (hr == NULL) {
 335       return false;
 336     }
 337     return !(hr->is_young());
 338   } else if (UseParallelGC) {
 339     ParallelScavengeHeap* psh = ParallelScavengeHeap::heap();
 340     return !psh->is_in_young(p);
 341   }
 342 #endif // INCLUDE_ALL_GCS
 343   GenCollectedHeap* gch = GenCollectedHeap::heap();
 344   return !gch->is_in_young(p);
 345 WB_END
 346 
 347 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj))
 348   oop p = JNIHandles::resolve(obj);
 349   return p->size() * HeapWordSize;
 350 WB_END
 351 
 352 WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o))
 353   size_t alignment = Universe::heap()->collector_policy()->space_alignment();


 382     jstring phase = env->NewStringUTF(phases[i]);
 383     CHECK_JNI_EXCEPTION_(env, NULL);
 384     env->SetObjectArrayElement(result, i, phase);
 385     CHECK_JNI_EXCEPTION_(env, NULL);
 386   }
 387   env->PopLocalFrame(NULL);
 388 
 389   return result;
 390 WB_END
 391 
 392 WB_ENTRY(jboolean, WB_RequestConcurrentGCPhase(JNIEnv* env, jobject o, jstring name))
 393   Handle h_name(THREAD, JNIHandles::resolve(name));
 394   ResourceMark rm;
 395   const char* c_name = java_lang_String::as_utf8_string(h_name());
 396   return Universe::heap()->request_concurrent_phase(c_name);
 397 WB_END
 398 
 399 #if INCLUDE_ALL_GCS
 400 WB_ENTRY(jboolean, WB_G1IsHumongous(JNIEnv* env, jobject o, jobject obj))
 401   if (UseG1GC) {
 402     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 403     oop result = JNIHandles::resolve(obj);
 404     const HeapRegion* hr = g1h->heap_region_containing(result);
 405     return hr->is_humongous();
 406   }
 407   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1IsHumongous: G1 GC is not enabled");
 408 WB_END
 409 
 410 WB_ENTRY(jboolean, WB_G1BelongsToHumongousRegion(JNIEnv* env, jobject o, jlong addr))
 411   if (UseG1GC) {
 412     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 413     const HeapRegion* hr = g1h->heap_region_containing((void*) addr);
 414     return hr->is_humongous();
 415   }
 416   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1BelongsToHumongousRegion: G1 GC is not enabled");
 417 WB_END
 418 
 419 WB_ENTRY(jboolean, WB_G1BelongsToFreeRegion(JNIEnv* env, jobject o, jlong addr))
 420   if (UseG1GC) {
 421     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 422     const HeapRegion* hr = g1h->heap_region_containing((void*) addr);
 423     return hr->is_free();
 424   }
 425   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1BelongsToFreeRegion: G1 GC is not enabled");
 426 WB_END
 427 
 428 WB_ENTRY(jlong, WB_G1NumMaxRegions(JNIEnv* env, jobject o))
 429   if (UseG1GC) {
 430     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 431     size_t nr = g1h->max_regions();
 432     return (jlong)nr;
 433   }
 434   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NumMaxRegions: G1 GC is not enabled");
 435 WB_END
 436 
 437 WB_ENTRY(jlong, WB_G1NumFreeRegions(JNIEnv* env, jobject o))
 438   if (UseG1GC) {
 439     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 440     size_t nr = g1h->num_free_regions();
 441     return (jlong)nr;
 442   }
 443   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NumFreeRegions: G1 GC is not enabled");
 444 WB_END
 445 
 446 WB_ENTRY(jboolean, WB_G1InConcurrentMark(JNIEnv* env, jobject o))
 447   if (UseG1GC) {
 448     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 449     return g1h->concurrent_mark()->cm_thread()->during_cycle();
 450   }
 451   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1InConcurrentMark: G1 GC is not enabled");
 452 WB_END
 453 
 454 WB_ENTRY(jboolean, WB_G1StartMarkCycle(JNIEnv* env, jobject o))
 455   if (UseG1GC) {
 456     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 457     if (!g1h->concurrent_mark()->cm_thread()->during_cycle()) {
 458       g1h->collect(GCCause::_wb_conc_mark);
 459       return true;
 460     }


< prev index next >