< prev index next >

src/share/vm/services/memoryService.cpp

Print this page

        

*** 44,61 **** --- 44,63 ---- #include "services/memoryPool.hpp" #include "services/memoryService.hpp" #include "utilities/growableArray.hpp" #include "utilities/macros.hpp" #if INCLUDE_ALL_GCS + #include "gc/shenandoah/shenandoahHeap.hpp" #include "gc/cms/concurrentMarkSweepGeneration.hpp" #include "gc/cms/parNewGeneration.hpp" #include "gc/g1/g1CollectedHeap.inline.hpp" #include "gc/parallel/parallelScavengeHeap.hpp" #include "gc/parallel/psOldGen.hpp" #include "gc/parallel/psYoungGen.hpp" #include "services/g1MemoryPool.hpp" #include "services/psMemoryPool.hpp" + #include "services/shenandoahMemoryPool.hpp" #endif // INCLUDE_ALL_GCS GrowableArray<MemoryPool*>* MemoryService::_pools_list = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<MemoryPool*>(init_pools_list_size, true); GrowableArray<MemoryManager*>* MemoryService::_managers_list =
*** 96,105 **** --- 98,111 ---- } case CollectedHeap::G1CollectedHeap : { add_g1_heap_info(G1CollectedHeap::heap()); break; } + case CollectedHeap::ShenandoahHeap : { + add_shenandoah_heap_info(ShenandoahHeap::heap()); + break; + } #endif // INCLUDE_ALL_GCS default: { guarantee(false, "Unrecognized kind of heap"); } }
*** 113,124 **** --- 119,134 ---- _major_gc_manager->set_num_gc_threads(count); } // All memory pools and memory managers are initialized. // + if (UseShenandoahGC) { + _major_gc_manager->initialize_gc_stat_info(); + } else { _minor_gc_manager->initialize_gc_stat_info(); _major_gc_manager->initialize_gc_stat_info(); + } } // Add memory pools for GenCollectedHeap // This function currently only supports two generations collected heap. // The collector for GenCollectedHeap will have two memory managers.
*** 185,194 **** --- 195,213 ---- _managers_list->append(_major_gc_manager); add_g1YoungGen_memory_pool(g1h, _major_gc_manager, _minor_gc_manager); add_g1OldGen_memory_pool(g1h, _major_gc_manager); } + + void MemoryService::add_shenandoah_heap_info(ShenandoahHeap* pgch) { + assert(UseShenandoahGC, "sanity"); + _major_gc_manager = MemoryManager::get_shenandoah_memory_manager(); + _minor_gc_manager = MemoryManager::get_shenandoah_memory_manager(); + _managers_list->append(_major_gc_manager); + add_shenandoah_memory_pool(pgch, _major_gc_manager); + } + #endif // INCLUDE_ALL_GCS MemoryPool* MemoryService::add_gen(Generation* gen, const char* name, bool is_heap,
*** 383,392 **** --- 402,424 ---- G1OldGenPool* old_gen = new G1OldGenPool(g1h); mgr->add_pool(old_gen); _pools_list->append(old_gen); } + + void MemoryService::add_shenandoah_memory_pool(ShenandoahHeap* pgc, + MemoryManager* mgr) { + ShenandoahMemoryPool* pool = new ShenandoahMemoryPool(pgc, + "Shenandoah", + MemoryPool::Heap, + false /* support_usage_threshold */); + + mgr->add_pool(pool); + _pools_list->append(pool); + } + + #endif // INCLUDE_ALL_GCS void MemoryService::add_code_heap_memory_pool(CodeHeap* heap, const char* name) { // Create new memory pool for this heap MemoryPool* code_heap_pool = new CodeHeapPool(heap, name, true /* support_usage_threshold */);
< prev index next >