< prev index next >

src/hotspot/share/gc/g1/g1CollectedHeap.cpp

Print this page
rev 56066 : [mq]: card_units

*** 1078,1088 **** _hot_card_cache->reset_hot_cache(); } // Discard all remembered set updates. G1BarrierSet::dirty_card_queue_set().abandon_logs(); ! assert(G1BarrierSet::dirty_card_queue_set().num_completed_buffers() == 0, "DCQS should be empty"); } void G1CollectedHeap::verify_after_full_collection() { _hrm->verify_optional(); --- 1078,1088 ---- _hot_card_cache->reset_hot_cache(); } // Discard all remembered set updates. G1BarrierSet::dirty_card_queue_set().abandon_logs(); ! assert(G1BarrierSet::dirty_card_queue_set().num_cards() == 0, "DCQS should be empty"); } void G1CollectedHeap::verify_after_full_collection() { _hrm->verify_optional();
*** 1681,1691 **** G1BarrierSet::satb_mark_queue_set().initialize(this, &bs->satb_mark_queue_buffer_allocator(), G1SATBProcessCompletedThreshold, G1SATBBufferEnqueueingThresholdPercent); ! // process_completed_buffers_threshold and max_completed_buffers are updated // later, based on the concurrent refinement object. G1BarrierSet::dirty_card_queue_set().initialize(DirtyCardQ_CBL_mon, &bs->dirty_card_queue_buffer_allocator(), true); // init_free_ids --- 1681,1691 ---- G1BarrierSet::satb_mark_queue_set().initialize(this, &bs->satb_mark_queue_buffer_allocator(), G1SATBProcessCompletedThreshold, G1SATBBufferEnqueueingThresholdPercent); ! // process_cards_threshold and max_cards are updated // later, based on the concurrent refinement object. G1BarrierSet::dirty_card_queue_set().initialize(DirtyCardQ_CBL_mon, &bs->dirty_card_queue_buffer_allocator(), true); // init_free_ids
*** 1810,1821 **** return ecode; } { G1DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); ! dcqs.set_process_completed_buffers_threshold(concurrent_refine()->yellow_zone()); ! dcqs.set_max_completed_buffers(concurrent_refine()->red_zone()); } // Here we allocate the dummy HeapRegion that is required by the // G1AllocRegion class. HeapRegion* dummy_region = _hrm->get_dummy_region(); --- 1810,1821 ---- return ecode; } { G1DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); ! dcqs.set_process_cards_threshold(concurrent_refine()->yellow_zone()); ! dcqs.set_max_cards(concurrent_refine()->red_zone()); } // Here we allocate the dummy HeapRegion that is required by the // G1AllocRegion class. HeapRegion* dummy_region = _hrm->get_dummy_region();
*** 1950,1960 **** G1DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); size_t n_completed_buffers = 0; while (dcqs.apply_closure_during_gc(cl, worker_i)) { n_completed_buffers++; } ! assert(dcqs.num_completed_buffers() == 0, "Completed buffers exist!"); phase_times()->record_thread_work_item(G1GCPhaseTimes::MergeLB, worker_i, n_completed_buffers, G1GCPhaseTimes::MergeLBProcessedBuffers); } // Computes the sum of the storage used by the various regions. size_t G1CollectedHeap::used() const { --- 1950,1960 ---- G1DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); size_t n_completed_buffers = 0; while (dcqs.apply_closure_during_gc(cl, worker_i)) { n_completed_buffers++; } ! assert(dcqs.num_cards() == 0, "Completed buffers exist!"); phase_times()->record_thread_work_item(G1GCPhaseTimes::MergeLB, worker_i, n_completed_buffers, G1GCPhaseTimes::MergeLBProcessedBuffers); } // Computes the sum of the storage used by the various regions. size_t G1CollectedHeap::used() const {
*** 2612,2624 **** } } count_from_threads; Threads::threads_do(&count_from_threads); G1DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); ! dcqs.verify_num_entries_in_completed_buffers(); ! return dcqs.num_entries_in_completed_buffers() + count_from_threads._cards; } bool G1CollectedHeap::is_potential_eager_reclaim_candidate(HeapRegion* r) const { // We don't nominate objects with many remembered set entries, on // the assumption that such objects are likely still live. --- 2612,2624 ---- } } count_from_threads; Threads::threads_do(&count_from_threads); G1DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); ! dcqs.verify_num_cards(); ! return dcqs.num_cards() + count_from_threads._cards; } bool G1CollectedHeap::is_potential_eager_reclaim_candidate(HeapRegion* r) const { // We don't nominate objects with many remembered set entries, on // the assumption that such objects are likely still live.
< prev index next >