4231 // concurrent precleaning.
4232 if (CMSParallelRemarkEnabled) {
4233 GCTraceTime(Debug, gc, phases) t("Rescan (parallel)", _gc_timer_cm);
4234 do_remark_parallel();
4235 } else {
4236 GCTraceTime(Debug, gc, phases) t("Rescan (non-parallel)", _gc_timer_cm);
4237 do_remark_non_parallel();
4238 }
4239 }
4240 verify_work_stacks_empty();
4241 verify_overflow_empty();
4242
4243 {
4244 GCTraceTime(Trace, gc, phases) ts("refProcessingWork", _gc_timer_cm);
4245 refProcessingWork();
4246 }
4247 verify_work_stacks_empty();
4248 verify_overflow_empty();
4249
4250 if (should_unload_classes()) {
4251 heap->prune_nmethods();
4252 }
4253 JvmtiExport::gc_epilogue();
4254
4255 // If we encountered any (marking stack / work queue) overflow
4256 // events during the current CMS cycle, take appropriate
4257 // remedial measures, where possible, so as to try and avoid
4258 // recurrence of that condition.
4259 assert(_markStack.isEmpty(), "No grey objects");
4260 size_t ser_ovflw = _ser_pmc_remark_ovflw + _ser_pmc_preclean_ovflw +
4261 _ser_kac_ovflw + _ser_kac_preclean_ovflw;
4262 if (ser_ovflw > 0) {
4263 log_trace(gc)("Marking stack overflow (benign) (pmc_pc=" SIZE_FORMAT ", pmc_rm=" SIZE_FORMAT ", kac=" SIZE_FORMAT ", kac_preclean=" SIZE_FORMAT ")",
4264 _ser_pmc_preclean_ovflw, _ser_pmc_remark_ovflw, _ser_kac_ovflw, _ser_kac_preclean_ovflw);
4265 _markStack.expand();
4266 _ser_pmc_remark_ovflw = 0;
4267 _ser_pmc_preclean_ovflw = 0;
4268 _ser_kac_preclean_ovflw = 0;
4269 _ser_kac_ovflw = 0;
4270 }
4271 if (_par_pmc_remark_ovflw > 0 || _par_kac_ovflw > 0) {
|
4231 // concurrent precleaning.
4232 if (CMSParallelRemarkEnabled) {
4233 GCTraceTime(Debug, gc, phases) t("Rescan (parallel)", _gc_timer_cm);
4234 do_remark_parallel();
4235 } else {
4236 GCTraceTime(Debug, gc, phases) t("Rescan (non-parallel)", _gc_timer_cm);
4237 do_remark_non_parallel();
4238 }
4239 }
4240 verify_work_stacks_empty();
4241 verify_overflow_empty();
4242
4243 {
4244 GCTraceTime(Trace, gc, phases) ts("refProcessingWork", _gc_timer_cm);
4245 refProcessingWork();
4246 }
4247 verify_work_stacks_empty();
4248 verify_overflow_empty();
4249
4250 if (should_unload_classes()) {
4251 heap->prune_scavengable_nmethods();
4252 }
4253 JvmtiExport::gc_epilogue();
4254
4255 // If we encountered any (marking stack / work queue) overflow
4256 // events during the current CMS cycle, take appropriate
4257 // remedial measures, where possible, so as to try and avoid
4258 // recurrence of that condition.
4259 assert(_markStack.isEmpty(), "No grey objects");
4260 size_t ser_ovflw = _ser_pmc_remark_ovflw + _ser_pmc_preclean_ovflw +
4261 _ser_kac_ovflw + _ser_kac_preclean_ovflw;
4262 if (ser_ovflw > 0) {
4263 log_trace(gc)("Marking stack overflow (benign) (pmc_pc=" SIZE_FORMAT ", pmc_rm=" SIZE_FORMAT ", kac=" SIZE_FORMAT ", kac_preclean=" SIZE_FORMAT ")",
4264 _ser_pmc_preclean_ovflw, _ser_pmc_remark_ovflw, _ser_kac_ovflw, _ser_kac_preclean_ovflw);
4265 _markStack.expand();
4266 _ser_pmc_remark_ovflw = 0;
4267 _ser_pmc_preclean_ovflw = 0;
4268 _ser_kac_preclean_ovflw = 0;
4269 _ser_kac_ovflw = 0;
4270 }
4271 if (_par_pmc_remark_ovflw > 0 || _par_kac_ovflw > 0) {
|