< prev index next >

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

Print this page
rev 58105 : [mq]: 8236073-softmaxheapsize


1188       uint const num_workers = MIN2(_g1h->workers()->active_workers(), workers_by_capacity);
1189 
1190       G1UpdateRemSetTrackingBeforeRebuildTask cl(_g1h, this, num_workers);
1191       log_debug(gc,ergo)("Running %s using %u workers for %u regions in heap", cl.name(), num_workers, _g1h->num_regions());
1192       _g1h->workers()->run_task(&cl, num_workers);
1193 
1194       log_debug(gc, remset, tracking)("Remembered Set Tracking update regions total %u, selected %u",
1195                                       _g1h->num_regions(), cl.total_selected_for_rebuild());
1196     }
1197     {
1198       GCTraceTime(Debug, gc, phases) debug("Reclaim Empty Regions", _gc_timer_cm);
1199       reclaim_empty_regions();
1200     }
1201 
1202     // Clean out dead classes
1203     if (ClassUnloadingWithConcurrentMark) {
1204       GCTraceTime(Debug, gc, phases) debug("Purge Metaspace", _gc_timer_cm);
1205       ClassLoaderDataGraph::purge();
1206     }
1207 
1208     _g1h->resize_heap_if_necessary();
1209 
1210     compute_new_sizes();
1211 
1212     verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark after");
1213 
1214     assert(!restart_for_overflow(), "sanity");
1215     // Completely reset the marking state since marking completed
1216     reset_at_marking_complete();
1217   } else {
1218     // We overflowed.  Restart concurrent marking.
1219     _restart_for_overflow = true;
1220 
1221     verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark overflow");
1222 
1223     // Clear the marking state because we will be restarting
1224     // marking due to overflowing the global mark stack.
1225     reset_marking_for_restart();
1226   }
1227 
1228   {
1229     GCTraceTime(Debug, gc, phases) debug("Report Object Count", _gc_timer_cm);




1188       uint const num_workers = MIN2(_g1h->workers()->active_workers(), workers_by_capacity);
1189 
1190       G1UpdateRemSetTrackingBeforeRebuildTask cl(_g1h, this, num_workers);
1191       log_debug(gc,ergo)("Running %s using %u workers for %u regions in heap", cl.name(), num_workers, _g1h->num_regions());
1192       _g1h->workers()->run_task(&cl, num_workers);
1193 
1194       log_debug(gc, remset, tracking)("Remembered Set Tracking update regions total %u, selected %u",
1195                                       _g1h->num_regions(), cl.total_selected_for_rebuild());
1196     }
1197     {
1198       GCTraceTime(Debug, gc, phases) debug("Reclaim Empty Regions", _gc_timer_cm);
1199       reclaim_empty_regions();
1200     }
1201 
1202     // Clean out dead classes
1203     if (ClassUnloadingWithConcurrentMark) {
1204       GCTraceTime(Debug, gc, phases) debug("Purge Metaspace", _gc_timer_cm);
1205       ClassLoaderDataGraph::purge();
1206     }
1207 


1208     compute_new_sizes();
1209 
1210     verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark after");
1211 
1212     assert(!restart_for_overflow(), "sanity");
1213     // Completely reset the marking state since marking completed
1214     reset_at_marking_complete();
1215   } else {
1216     // We overflowed.  Restart concurrent marking.
1217     _restart_for_overflow = true;
1218 
1219     verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark overflow");
1220 
1221     // Clear the marking state because we will be restarting
1222     // marking due to overflowing the global mark stack.
1223     reset_marking_for_restart();
1224   }
1225 
1226   {
1227     GCTraceTime(Debug, gc, phases) debug("Report Object Count", _gc_timer_cm);


< prev index next >