< prev index next >

src/hotspot/share/prims/whitebox.cpp

Print this page
rev 52494 : adding jtreg tests, whitebox api.
rev 52631 : Merge

*** 80,89 **** --- 80,90 ---- #if INCLUDE_G1GC #include "gc/g1/g1CollectedHeap.inline.hpp" #include "gc/g1/g1ConcurrentMark.hpp" #include "gc/g1/g1ConcurrentMarkThread.hpp" #include "gc/g1/heapRegionRemSet.hpp" + #include "gc/g1/heterogeneousHeapRegionManager.hpp" #endif // INCLUDE_G1GC #if INCLUDE_PARALLELGC #include "gc/parallel/parallelScavengeHeap.inline.hpp" #include "gc/parallel/adjoiningGenerations.hpp" #endif // INCLUDE_PARALLELGC
*** 368,377 **** --- 369,382 ---- #endif GenCollectedHeap* gch = GenCollectedHeap::heap(); return !gch->is_in_young(p); WB_END + WB_ENTRY(jlong, WB_GetHeapBase(JNIEnv* env, jobject o)) + return (jlong)Universe::heap()->base(); + WB_END + WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj)) oop p = JNIHandles::resolve(obj); return Universe::heap()->obj_size(p) * HeapWordSize; WB_END
*** 495,504 **** --- 500,563 ---- return (jint)HeapRegion::GrainBytes; } THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1RegionSize: G1 GC is not enabled"); WB_END + WB_ENTRY(jlong, WB_G1DramReservedStart(JNIEnv* env, jobject o)) + if (UseG1GC) { + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + if (g1h->is_hetero_heap()) { + uint start_region = static_cast<HeterogeneousHeapRegionManager*>(g1h->hrm())->start_index_of_dram(); + return (jlong)(Universe::heap()->base() + start_region * HeapRegion::GrainBytes); + } else { + return (jlong)Universe::heap()->base(); + } + } + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1DramReservedStart: G1 GC is not enabled"); + WB_END + + WB_ENTRY(jlong, WB_G1DramReservedEnd(JNIEnv* env, jobject o)) + if (UseG1GC) { + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + if (g1h->is_hetero_heap()) { + uint end_region = static_cast<HeterogeneousHeapRegionManager*>(g1h->hrm())->end_index_of_dram(); + return (jlong)(Universe::heap()->base() + (end_region + 1) * HeapRegion::GrainBytes - 1); + } + else { + return (jlong)Universe::heap()->base() + Universe::heap()->collector_policy()->max_heap_byte_size(); + } + } + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1DramReservedEnd: G1 GC is not enabled"); + WB_END + + WB_ENTRY(jlong, WB_G1NvdimmReservedStart(JNIEnv* env, jobject o)) + if (UseG1GC) { + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + if (g1h->is_hetero_heap()) { + uint start_region = static_cast<HeterogeneousHeapRegionManager*>(g1h->hrm())->start_index_of_nvdimm(); + return (jlong)(Universe::heap()->base() + start_region * HeapRegion::GrainBytes); + } else { + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NvdimmReservedStart: G1 heap is not heterogeneous"); + } + } + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NvdimmReservedStart: G1 GC is not enabled"); + WB_END + + WB_ENTRY(jlong, WB_G1NvdimmReservedEnd(JNIEnv* env, jobject o)) + if (UseG1GC) { + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + if (g1h->is_hetero_heap()) { + uint end_region = static_cast<HeterogeneousHeapRegionManager*>(g1h->hrm())->start_index_of_nvdimm(); + return (jlong)(Universe::heap()->base() + (end_region + 1) * HeapRegion::GrainBytes - 1); + } + else { + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NvdimmReservedEnd: G1 heap is not heterogeneous"); + } + } + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NvdimmReservedEnd: G1 GC is not enabled"); + WB_END + #endif // INCLUDE_G1GC #if INCLUDE_PARALLELGC WB_ENTRY(jlong, WB_PSVirtualSpaceAlignment(JNIEnv* env, jobject o))
*** 2013,2022 **** --- 2072,2082 ---- #define CC (char*) static JNINativeMethod methods[] = { {CC"getObjectAddress0", CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectAddress }, {CC"getObjectSize0", CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectSize }, + {CC"getHeapBase", CC"()J", (void*)&WB_GetHeapBase }, {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"getVMAllocationGranularity", CC"()J", (void*)&WB_GetVMAllocationGranularity }, {CC"getVMLargePageSize", CC"()J", (void*)&WB_GetVMLargePageSize},
*** 2047,2056 **** --- 2107,2120 ---- {CC"g1BelongsToHumongousRegion0", CC"(J)Z", (void*)&WB_G1BelongsToHumongousRegion}, {CC"g1BelongsToFreeRegion0", CC"(J)Z", (void*)&WB_G1BelongsToFreeRegion}, {CC"g1NumMaxRegions", CC"()J", (void*)&WB_G1NumMaxRegions }, {CC"g1NumFreeRegions", CC"()J", (void*)&WB_G1NumFreeRegions }, {CC"g1RegionSize", CC"()I", (void*)&WB_G1RegionSize }, + {CC"g1DramReservedStart", CC"()J", (void*)&WB_G1DramReservedStart }, + {CC"g1DramReservedEnd", CC"()J", (void*)&WB_G1DramReservedEnd }, + {CC"g1NvdimmReservedStart", CC"()J", (void*)&WB_G1NvdimmReservedStart }, + {CC"g1NvdimmReservedEnd", CC"()J", (void*)&WB_G1NvdimmReservedEnd }, {CC"g1StartConcMarkCycle", CC"()Z", (void*)&WB_G1StartMarkCycle }, {CC"g1AuxiliaryMemoryUsage", CC"()Ljava/lang/management/MemoryUsage;", (void*)&WB_G1AuxiliaryMemoryUsage }, {CC"g1GetMixedGCInfo", CC"(I)[J", (void*)&WB_G1GetMixedGCInfo }, #endif // INCLUDE_G1GC
< prev index next >