aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/prims/whitebox.cpp
diff options
context:
space:
mode:
authorazakharov <none@none>2015-05-19 15:49:27 +0200
committerazakharov <none@none>2015-05-19 15:49:27 +0200
commit05b230758f231b66e84a5cca5f74a2e613722ad1 (patch)
tree42b2be7264866bd69533a1597929471c9111ff78 /src/share/vm/prims/whitebox.cpp
parent9b4d0b7da60466c5d6554804ee1bcacc7eae3fa0 (diff)
downloadjdk8u_hotspot-05b230758f231b66e84a5cca5f74a2e613722ad1.tar.gz
8061715: gc/g1/TestShrinkAuxiliaryData15.java fails with java.lang.RuntimeException: heap decommit failed - after > before
Summary: added WhiteBox methods to count regions and exact aux data sizes Reviewed-by: jwilhelm, brutisso
Diffstat (limited to 'src/share/vm/prims/whitebox.cpp')
-rw-r--r--src/share/vm/prims/whitebox.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/share/vm/prims/whitebox.cpp b/src/share/vm/prims/whitebox.cpp
index 776741be0..ddf702d20 100644
--- a/src/share/vm/prims/whitebox.cpp
+++ b/src/share/vm/prims/whitebox.cpp
@@ -309,6 +309,12 @@ WB_ENTRY(jboolean, WB_G1IsHumongous(JNIEnv* env, jobject o, jobject obj))
return hr->isHumongous();
WB_END
+WB_ENTRY(jlong, WB_G1NumMaxRegions(JNIEnv* env, jobject o))
+ G1CollectedHeap* g1 = G1CollectedHeap::heap();
+ size_t nr = g1->max_regions();
+ return (jlong)nr;
+WB_END
+
WB_ENTRY(jlong, WB_G1NumFreeRegions(JNIEnv* env, jobject o))
G1CollectedHeap* g1 = G1CollectedHeap::heap();
size_t nr = g1->num_free_regions();
@@ -324,6 +330,14 @@ WB_END
WB_ENTRY(jint, WB_G1RegionSize(JNIEnv* env, jobject o))
return (jint)HeapRegion::GrainBytes;
WB_END
+
+WB_ENTRY(jobject, WB_G1AuxiliaryMemoryUsage(JNIEnv* env))
+ ResourceMark rm(THREAD);
+ G1CollectedHeap* g1h = G1CollectedHeap::heap();
+ MemoryUsage usage = g1h->get_auxiliary_data_memory_usage();
+ Handle h = MemoryService::create_MemoryUsage_obj(usage, CHECK_NULL);
+ return JNIHandles::make_local(env, h());
+WB_END
#endif // INCLUDE_ALL_GCS
#if INCLUDE_NMT
@@ -1014,8 +1028,11 @@ static JNINativeMethod methods[] = {
#if INCLUDE_ALL_GCS
{CC"g1InConcurrentMark", CC"()Z", (void*)&WB_G1InConcurrentMark},
{CC"g1IsHumongous", 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 },
+ {CC"g1AuxiliaryMemoryUsage", CC"()Ljava/lang/management/MemoryUsage;",
+ (void*)&WB_G1AuxiliaryMemoryUsage },
#endif // INCLUDE_ALL_GCS
#if INCLUDE_NMT
{CC"NMTMalloc", CC"(J)J", (void*)&WB_NMTMalloc },