< prev index next >

src/hotspot/share/prims/whitebox.cpp

Print this page
rev 53002 : imported patch webrev.11

*** 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
*** 497,506 **** --- 498,562 ---- THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1RegionSize: G1 GC is not enabled"); WB_END #endif // INCLUDE_G1GC + #if INCLUDE_G1GC + WB_ENTRY(jlong, WB_DramReservedStart(JNIEnv* env, jobject o)) + if (UseG1GC) { + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + if (g1h->g1_collector_policy()->is_hetero_heap()) { + uint start_region = HeterogeneousHeapRegionManager::manager()->start_index_of_dram(); + return (jlong)(g1h->base() + start_region * HeapRegion::GrainBytes); + } else { + return (jlong)g1h->base(); + } + } + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_DramReservedStart: enabled only for G1"); + WB_END + + WB_ENTRY(jlong, WB_DramReservedEnd(JNIEnv* env, jobject o)) + if (UseG1GC) { + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + if (g1h->g1_collector_policy()->is_hetero_heap()) { + uint end_region = HeterogeneousHeapRegionManager::manager()->end_index_of_dram(); + return (jlong)(g1h->base() + (end_region + 1) * HeapRegion::GrainBytes - 1); + } else { + return (jlong)g1h->base() + g1h->collector_policy()->max_heap_byte_size(); + } + } + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_DramReservedEnd: enabled only for G1"); + WB_END + + WB_ENTRY(jlong, WB_NvdimmReservedStart(JNIEnv* env, jobject o)) + if (UseG1GC) { + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + if (g1h->g1_collector_policy()->is_hetero_heap()) { + uint start_region = HeterogeneousHeapRegionManager::manager()->start_index_of_nvdimm(); + return (jlong)(g1h->base() + start_region * HeapRegion::GrainBytes); + } else { + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_NvdimmReservedStart: Old gen is not allocated on NV-DIMM using AllocateOldGenAt flag"); + } + } + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_NvdimmReservedStart: enabled only for G1"); + WB_END + + WB_ENTRY(jlong, WB_NvdimmReservedEnd(JNIEnv* env, jobject o)) + if (UseG1GC) { + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + if (g1h->g1_collector_policy()->is_hetero_heap()) { + uint end_region = HeterogeneousHeapRegionManager::manager()->start_index_of_nvdimm(); + return (jlong)(g1h->base() + (end_region + 1) * HeapRegion::GrainBytes - 1); + } else { + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_NvdimmReservedEnd: Old gen is not allocated on NV-DIMM using AllocateOldGenAt flag"); + } + } + THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_NvdimmReservedEnd: enabled only for G1"); + WB_END + + #endif // INCLUDE_G1GC + #if INCLUDE_PARALLELGC WB_ENTRY(jlong, WB_PSVirtualSpaceAlignment(JNIEnv* env, jobject o)) if (UseParallelGC) { return ParallelScavengeHeap::heap()->gens()->virtual_spaces()->alignment();
*** 2051,2060 **** --- 2107,2120 ---- {CC"g1RegionSize", CC"()I", (void*)&WB_G1RegionSize }, {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 }, + {CC"dramReservedStart", CC"()J", (void*)&WB_DramReservedStart }, + {CC"dramReservedEnd", CC"()J", (void*)&WB_DramReservedEnd }, + {CC"nvdimmReservedStart", CC"()J", (void*)&WB_NvdimmReservedStart }, + {CC"nvdimmReservedEnd", CC"()J", (void*)&WB_NvdimmReservedEnd }, #endif // INCLUDE_G1GC #if INCLUDE_PARALLELGC {CC"psVirtualSpaceAlignment",CC"()J", (void*)&WB_PSVirtualSpaceAlignment}, {CC"psHeapGenerationAlignment",CC"()J", (void*)&WB_PSHeapGenerationAlignment}, #endif
< prev index next >