< prev index next >
src/hotspot/share/gc/g1/g1ConcurrentMark.cpp
Print this page
rev 49670 : imported patch 8178105-switch-at-remark
rev 49671 : imported patch 8178105-stefanj-review
rev 49672 : imported patch 8178105-stefanj-review2
rev 49674 : imported patch 8154528-reclaim-at-remark
rev 49675 : imported patch 8154528-stefanj-review
rev 49678 : imported patch 8200426-sangheon-review
rev 49679 : imported patch 8200730-timing-in-remark-cleanup
rev 49682 : imported patch 8201172-parallelize-remark-phase
rev 49683 : [mq]: 8201172-stefanj-review
@@ -1008,11 +1008,11 @@
class G1UpdateRemSetTrackingBeforeRebuildTask : public AbstractGangTask {
G1CollectedHeap* _g1h;
G1ConcurrentMark* _cm;
HeapRegionClaimer _hrclaimer;
- uint _num_selected_for_rebuild;
+ uint _total_selected_for_rebuild;
G1PrintRegionLivenessInfoClosure _cl;
class G1UpdateRemSetTrackingBeforeRebuild : public HeapRegionClosure {
G1CollectedHeap* _g1h;
@@ -1100,22 +1100,22 @@
};
public:
G1UpdateRemSetTrackingBeforeRebuildTask(G1CollectedHeap* g1h, G1ConcurrentMark* cm, uint num_workers) :
AbstractGangTask("G1 Update RemSet Tracking Before Rebuild"),
- _g1h(g1h), _cm(cm), _hrclaimer(num_workers), _num_selected_for_rebuild(0), _cl("Post-Marking") { }
+ _g1h(g1h), _cm(cm), _hrclaimer(num_workers), _total_selected_for_rebuild(0), _cl("Post-Marking") { }
virtual void work(uint worker_id) {
- G1UpdateRemSetTrackingBeforeRebuild cl(_g1h, _cm, &_cl);
- _g1h->heap_region_par_iterate_from_worker_offset(&cl, &_hrclaimer, worker_id);
- Atomic::add(cl.num_selected_for_rebuild(), &_num_selected_for_rebuild);
+ G1UpdateRemSetTrackingBeforeRebuild update_cl(_g1h, _cm, &_cl);
+ _g1h->heap_region_par_iterate_from_worker_offset(&update_cl, &_hrclaimer, worker_id);
+ Atomic::add(update_cl.num_selected_for_rebuild(), &_total_selected_for_rebuild);
}
- uint num_selected_for_rebuild() const { return _num_selected_for_rebuild; }
+ uint total_selected_for_rebuild() const { return _total_selected_for_rebuild; }
// Number of regions for which roughly one thread should be spawned for this work.
- static const uint RegionsPerThread = 512;
+ static const uint RegionsPerThread = 384;
};
class G1UpdateRemSetTrackingAfterRebuild : public HeapRegionClosure {
G1CollectedHeap* _g1h;
public:
@@ -1178,11 +1178,11 @@
G1UpdateRemSetTrackingBeforeRebuildTask cl(_g1h, this, num_workers);
log_debug(gc,ergo)("Running %s using %u workers for %u regions in heap", cl.name(), num_workers, _g1h->num_regions());
_g1h->workers()->run_task(&cl, num_workers);
log_debug(gc, remset, tracking)("Remembered Set Tracking update regions total %u, selected %u",
- _g1h->num_regions(), cl.num_selected_for_rebuild());
+ _g1h->num_regions(), cl.total_selected_for_rebuild());
}
{
GCTraceTime(Debug, gc, phases) trace("Reclaim Empty Regions", _gc_timer_cm);
reclaim_empty_regions();
}
< prev index next >