< prev index next >

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

Print this page
rev 49511 : imported patch 8200234-g1concurrentmark-refactorings
rev 49512 : imported patch 8200234-stefanj-review
rev 49515 : 8200255: Remove G1CMTask::_concurrent
Reviewed-by: sangheki, sjohanss
rev 49516 : 8200074: Remove G1ConcurrentMark::_concurrent_marking_in_progress
Reviewed-by: sjohanss, sangheki
rev 49517 : imported patch 8200305-gc,liveness-output
rev 49518 : imported patch 8200385-prev-bitmap-marks-left
rev 49519 : imported patch 8200385-stefanj-review
rev 49520 : imported patch 8178105-switch-at-remark
rev 49521 : imported patch 8178105-stefanj-review
rev 49522 : imported patch 8178105-stefanj-review2
rev 49523 : imported patch 8154528-reclaim-at-remark
rev 49524 : [mq]: 8154528-stefanj-review

*** 1179,1200 **** _remark_times.add((now - start) * 1000.0); g1p->record_concurrent_mark_remark_end(); } ! class G1CleanupTask : public AbstractGangTask { // Per-region work during the Cleanup pause. ! class G1CleanupRegionsClosure : public HeapRegionClosure { G1CollectedHeap* _g1h; size_t _freed_bytes; FreeRegionList* _local_cleanup_list; uint _old_regions_removed; uint _humongous_regions_removed; HRRSCleanupTask* _hrrs_cleanup_task; public: ! G1CleanupRegionsClosure(G1CollectedHeap* g1, FreeRegionList* local_cleanup_list, HRRSCleanupTask* hrrs_cleanup_task) : _g1h(g1), _freed_bytes(0), _local_cleanup_list(local_cleanup_list), --- 1179,1200 ---- _remark_times.add((now - start) * 1000.0); g1p->record_concurrent_mark_remark_end(); } ! class G1ReclaimEmptyRegionsTask : public AbstractGangTask { // Per-region work during the Cleanup pause. ! class G1ReclaimEmptyRegionsClosure : public HeapRegionClosure { G1CollectedHeap* _g1h; size_t _freed_bytes; FreeRegionList* _local_cleanup_list; uint _old_regions_removed; uint _humongous_regions_removed; HRRSCleanupTask* _hrrs_cleanup_task; public: ! G1ReclaimEmptyRegionsClosure(G1CollectedHeap* g1, FreeRegionList* local_cleanup_list, HRRSCleanupTask* hrrs_cleanup_task) : _g1h(g1), _freed_bytes(0), _local_cleanup_list(local_cleanup_list),
*** 1231,1241 **** G1CollectedHeap* _g1h; FreeRegionList* _cleanup_list; HeapRegionClaimer _hrclaimer; public: ! G1CleanupTask(G1CollectedHeap* g1h, FreeRegionList* cleanup_list, uint n_workers) : AbstractGangTask("G1 Cleanup"), _g1h(g1h), _cleanup_list(cleanup_list), _hrclaimer(n_workers) { --- 1231,1241 ---- G1CollectedHeap* _g1h; FreeRegionList* _cleanup_list; HeapRegionClaimer _hrclaimer; public: ! G1ReclaimEmptyRegionsTask(G1CollectedHeap* g1h, FreeRegionList* cleanup_list, uint n_workers) : AbstractGangTask("G1 Cleanup"), _g1h(g1h), _cleanup_list(cleanup_list), _hrclaimer(n_workers) {
*** 1243,1253 **** } void work(uint worker_id) { FreeRegionList local_cleanup_list("Local Cleanup List"); HRRSCleanupTask hrrs_cleanup_task; ! G1CleanupRegionsClosure cl(_g1h, &local_cleanup_list, &hrrs_cleanup_task); _g1h->heap_region_par_iterate_from_worker_offset(&cl, &_hrclaimer, worker_id); assert(cl.is_complete(), "Shouldn't have aborted!"); --- 1243,1253 ---- } void work(uint worker_id) { FreeRegionList local_cleanup_list("Local Cleanup List"); HRRSCleanupTask hrrs_cleanup_task; ! G1ReclaimEmptyRegionsClosure cl(_g1h, &local_cleanup_list, &hrrs_cleanup_task); _g1h->heap_region_par_iterate_from_worker_offset(&cl, &_hrclaimer, worker_id); assert(cl.is_complete(), "Shouldn't have aborted!");
*** 1267,1277 **** void G1ConcurrentMark::reclaim_empty_regions() { WorkGang* workers = _g1h->workers(); FreeRegionList empty_regions_list("Empty Regions After Mark List"); ! G1CleanupTask cl(_g1h, &empty_regions_list, workers->active_workers()); workers->run_task(&cl); if (!empty_regions_list.is_empty()) { log_debug(gc)("Reclaimed %u empty regions", empty_regions_list.length()); // Now print the empty regions list. --- 1267,1277 ---- void G1ConcurrentMark::reclaim_empty_regions() { WorkGang* workers = _g1h->workers(); FreeRegionList empty_regions_list("Empty Regions After Mark List"); ! G1ReclaimEmptyRegionsTask cl(_g1h, &empty_regions_list, workers->active_workers()); workers->run_task(&cl); if (!empty_regions_list.is_empty()) { log_debug(gc)("Reclaimed %u empty regions", empty_regions_list.length()); // Now print the empty regions list.
< prev index next >