1161 uint const num_workers = MIN2(_g1h->workers()->active_workers(), workers_by_capacity);
1162
1163 G1UpdateRemSetTrackingBeforeRebuildTask cl(_g1h, this, num_workers);
1164 log_debug(gc,ergo)("Running %s using %u workers for %u regions in heap", cl.name(), num_workers, _g1h->num_regions());
1165 _g1h->workers()->run_task(&cl, num_workers);
1166
1167 log_debug(gc, remset, tracking)("Remembered Set Tracking update regions total %u, selected %u",
1168 _g1h->num_regions(), cl.total_selected_for_rebuild());
1169 }
1170 {
1171 GCTraceTime(Debug, gc, phases) debug("Reclaim Empty Regions", _gc_timer_cm);
1172 reclaim_empty_regions();
1173 }
1174
1175 // Clean out dead classes
1176 if (ClassUnloadingWithConcurrentMark) {
1177 GCTraceTime(Debug, gc, phases) debug("Purge Metaspace", _gc_timer_cm);
1178 ClassLoaderDataGraph::purge();
1179 }
1180
1181 compute_new_sizes();
1182
1183 verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark after");
1184
1185 assert(!restart_for_overflow(), "sanity");
1186 // Completely reset the marking state since marking completed
1187 reset_at_marking_complete();
1188 } else {
1189 // We overflowed. Restart concurrent marking.
1190 _restart_for_overflow = true;
1191
1192 verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark overflow");
1193
1194 // Clear the marking state because we will be restarting
1195 // marking due to overflowing the global mark stack.
1196 reset_marking_for_restart();
1197 }
1198
1199 {
1200 GCTraceTime(Debug, gc, phases) debug("Report Object Count", _gc_timer_cm);
|
1161 uint const num_workers = MIN2(_g1h->workers()->active_workers(), workers_by_capacity);
1162
1163 G1UpdateRemSetTrackingBeforeRebuildTask cl(_g1h, this, num_workers);
1164 log_debug(gc,ergo)("Running %s using %u workers for %u regions in heap", cl.name(), num_workers, _g1h->num_regions());
1165 _g1h->workers()->run_task(&cl, num_workers);
1166
1167 log_debug(gc, remset, tracking)("Remembered Set Tracking update regions total %u, selected %u",
1168 _g1h->num_regions(), cl.total_selected_for_rebuild());
1169 }
1170 {
1171 GCTraceTime(Debug, gc, phases) debug("Reclaim Empty Regions", _gc_timer_cm);
1172 reclaim_empty_regions();
1173 }
1174
1175 // Clean out dead classes
1176 if (ClassUnloadingWithConcurrentMark) {
1177 GCTraceTime(Debug, gc, phases) debug("Purge Metaspace", _gc_timer_cm);
1178 ClassLoaderDataGraph::purge();
1179 }
1180
1181 _g1h->resize_heap_if_necessary();
1182
1183 compute_new_sizes();
1184
1185 verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark after");
1186
1187 assert(!restart_for_overflow(), "sanity");
1188 // Completely reset the marking state since marking completed
1189 reset_at_marking_complete();
1190 } else {
1191 // We overflowed. Restart concurrent marking.
1192 _restart_for_overflow = true;
1193
1194 verify_during_pause(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "Remark overflow");
1195
1196 // Clear the marking state because we will be restarting
1197 // marking due to overflowing the global mark stack.
1198 reset_marking_for_restart();
1199 }
1200
1201 {
1202 GCTraceTime(Debug, gc, phases) debug("Report Object Count", _gc_timer_cm);
|