< prev index next >

src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

Print this page
rev 8074 : imported patch heap_statics_remove

*** 407,420 **** bool G1CollectedHeap::is_scavengable(const void* p) { HeapRegion* hr = heap_region_containing(p); return !hr->is_humongous(); } - // Private class members. - - G1CollectedHeap* G1CollectedHeap::_g1h; - // Private methods. HeapRegion* G1CollectedHeap::new_region_try_secondary_free_list(bool is_old) { MutexLockerEx x(SecondaryFreeList_lock, Mutex::_no_safepoint_check_flag); --- 407,416 ----
*** 1766,1783 **** _gc_timer_stw(new (ResourceObj::C_HEAP, mtGC) STWGCTimer()), _gc_timer_cm(new (ResourceObj::C_HEAP, mtGC) ConcurrentGCTimer()), _gc_tracer_stw(new (ResourceObj::C_HEAP, mtGC) G1NewTracer()), _gc_tracer_cm(new (ResourceObj::C_HEAP, mtGC) G1OldTracer()) { - _g1h = this; - _workers = new FlexibleWorkGang("GC Thread", ParallelGCThreads, /* are_GC_task_threads */true, /* are_ConcurrentGC_threads */false); _workers->initialize_workers(); ! _allocator = G1Allocator::create_allocator(_g1h); _humongous_object_threshold_in_words = HeapRegion::GrainWords / 2; int n_queues = MAX2((int)ParallelGCThreads, 1); _task_queues = new RefToScanQueueSet(n_queues); --- 1762,1777 ---- _gc_timer_stw(new (ResourceObj::C_HEAP, mtGC) STWGCTimer()), _gc_timer_cm(new (ResourceObj::C_HEAP, mtGC) ConcurrentGCTimer()), _gc_tracer_stw(new (ResourceObj::C_HEAP, mtGC) G1NewTracer()), _gc_tracer_cm(new (ResourceObj::C_HEAP, mtGC) G1OldTracer()) { _workers = new FlexibleWorkGang("GC Thread", ParallelGCThreads, /* are_GC_task_threads */true, /* are_ConcurrentGC_threads */false); _workers->initialize_workers(); ! _allocator = G1Allocator::create_allocator(this); _humongous_object_threshold_in_words = HeapRegion::GrainWords / 2; int n_queues = MAX2((int)ParallelGCThreads, 1); _task_queues = new RefToScanQueueSet(n_queues);
*** 1935,1946 **** FreeRegionList::set_unrealistically_long_length(max_regions() + 1); _bot_shared = new G1BlockOffsetSharedArray(reserved_region(), bot_storage); - _g1h = this; - _in_cset_fast_test.initialize(_hrm.reserved().start(), _hrm.reserved().end(), HeapRegion::GrainBytes); _humongous_is_live.initialize(_hrm.reserved().start(), _hrm.reserved().end(), HeapRegion::GrainBytes); // Create the ConcurrentMark data structure and thread. // (Must do this late, so that "max_regions" is defined.) --- 1929,1938 ----
*** 3315,3327 **** heap_region_iterate(&cl); } #endif // PRODUCT G1CollectedHeap* G1CollectedHeap::heap() { ! assert(_g1h != NULL, "Uninitialized access to G1CollectedHeap::heap()"); ! assert(_g1h->kind() == CollectedHeap::G1CollectedHeap, "Not a G1 heap"); ! return _g1h; } void G1CollectedHeap::gc_prologue(bool full /* Ignored */) { // always_do_update_barrier = false; assert(InlineCacheBuffer::is_empty(), "should have cleaned up ICBuffer"); --- 3307,3320 ---- heap_region_iterate(&cl); } #endif // PRODUCT G1CollectedHeap* G1CollectedHeap::heap() { ! G1CollectedHeap* heap = (G1CollectedHeap*)Universe::heap(); ! assert(heap != NULL, "Uninitialized access to G1CollectedHeap::heap()"); ! assert(heap->kind() == CollectedHeap::G1CollectedHeap, "Not a G1CollectedHeap"); ! return heap; } void G1CollectedHeap::gc_prologue(bool full /* Ignored */) { // always_do_update_barrier = false; assert(InlineCacheBuffer::is_empty(), "should have cleaned up ICBuffer");
*** 4835,4845 **** } void G1CollectedHeap::unlink_string_and_symbol_table(BoolObjectClosure* is_alive, bool process_strings, bool process_symbols) { { ! uint n_workers = _g1h->workers()->active_workers(); G1StringSymbolTableUnlinkTask g1_unlink_task(is_alive, process_strings, process_symbols); set_par_threads(n_workers); workers()->run_task(&g1_unlink_task); set_par_threads(0); } --- 4828,4838 ---- } void G1CollectedHeap::unlink_string_and_symbol_table(BoolObjectClosure* is_alive, bool process_strings, bool process_symbols) { { ! uint n_workers = workers()->active_workers(); G1StringSymbolTableUnlinkTask g1_unlink_task(is_alive, process_strings, process_symbols); set_par_threads(n_workers); workers()->run_task(&g1_unlink_task); set_par_threads(0); }
*** 4867,4877 **** }; void G1CollectedHeap::redirty_logged_cards() { double redirty_logged_cards_start = os::elapsedTime(); ! uint n_workers = _g1h->workers()->active_workers(); G1RedirtyLoggedCardsTask redirty_task(&dirty_card_queue_set()); dirty_card_queue_set().reset_for_par_iteration(); set_par_threads(n_workers); workers()->run_task(&redirty_task); --- 4860,4870 ---- }; void G1CollectedHeap::redirty_logged_cards() { double redirty_logged_cards_start = os::elapsedTime(); ! uint n_workers = workers()->active_workers(); G1RedirtyLoggedCardsTask redirty_task(&dirty_card_queue_set()); dirty_card_queue_set().reset_for_par_iteration(); set_par_threads(n_workers); workers()->run_task(&redirty_task);
*** 5300,5310 **** G1ParScanAndMarkExtRootClosure copy_mark_non_heap_cl(this, &pss, NULL); OopClosure* copy_non_heap_cl = &only_copy_non_heap_cl; ! if (_g1h->g1_policy()->during_initial_mark_pause()) { // We also need to mark copied objects. copy_non_heap_cl = &copy_mark_non_heap_cl; } // Keep alive closure. --- 5293,5303 ---- G1ParScanAndMarkExtRootClosure copy_mark_non_heap_cl(this, &pss, NULL); OopClosure* copy_non_heap_cl = &only_copy_non_heap_cl; ! if (g1_policy()->during_initial_mark_pause()) { // We also need to mark copied objects. copy_non_heap_cl = &copy_mark_non_heap_cl; } // Keep alive closure.
*** 6054,6069 **** heap_region_iterate(&cl); HeapRegionSetCount empty_set; remove_from_old_sets(empty_set, cl.humongous_free_count()); ! G1HRPrinter* hr_printer = _g1h->hr_printer(); ! if (hr_printer->is_active()) { FreeRegionListIterator iter(&local_cleanup_list); while (iter.more_available()) { HeapRegion* hr = iter.get_next(); ! hr_printer->cleanup(hr); } } prepend_to_freelist(&local_cleanup_list); decrement_summary_bytes(cl.bytes_freed()); --- 6047,6062 ---- heap_region_iterate(&cl); HeapRegionSetCount empty_set; remove_from_old_sets(empty_set, cl.humongous_free_count()); ! G1HRPrinter* hrp = hr_printer(); ! if (hrp->is_active()) { FreeRegionListIterator iter(&local_cleanup_list); while (iter.more_available()) { HeapRegion* hr = iter.get_next(); ! hrp->cleanup(hr); } } prepend_to_freelist(&local_cleanup_list); decrement_summary_bytes(cl.bytes_freed());
< prev index next >