< 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 >