< prev index next >

src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp

Print this page
rev 13328 : [mq]: webrev.0b
rev 13329 : [mq]: webrev.1
rev 13331 : imported patch webrev.3b
rev 13332 : [mq]: webrev.4

*** 5183,5192 **** --- 5183,5193 ---- CMSKeepAliveClosure cmsKeepAliveClosure(this, _span, &_markBitMap, &_markStack, false /* !preclean */); CMSDrainMarkingStackClosure cmsDrainMarkingStackClosure(this, _span, &_markBitMap, &_markStack, &cmsKeepAliveClosure, false /* !preclean */); + ReferenceProcessorPhaseTimes pt(_gc_timer_cm, rp->num_q()); { GCTraceTime(Debug, gc, phases) t("Reference Processing", _gc_timer_cm); ReferenceProcessorStats stats; if (rp->processing_is_mt()) {
*** 5209,5228 **** CMSRefProcTaskExecutor task_executor(*this); stats = rp->process_discovered_references(&_is_alive_closure, &cmsKeepAliveClosure, &cmsDrainMarkingStackClosure, &task_executor, ! _gc_timer_cm); } else { stats = rp->process_discovered_references(&_is_alive_closure, &cmsKeepAliveClosure, &cmsDrainMarkingStackClosure, NULL, ! _gc_timer_cm); } _gc_tracer_cm->report_gc_reference_stats(stats); ! } // This is the point where the entire marking should have completed. verify_work_stacks_empty(); --- 5210,5229 ---- CMSRefProcTaskExecutor task_executor(*this); stats = rp->process_discovered_references(&_is_alive_closure, &cmsKeepAliveClosure, &cmsDrainMarkingStackClosure, &task_executor, ! &pt); } else { stats = rp->process_discovered_references(&_is_alive_closure, &cmsKeepAliveClosure, &cmsDrainMarkingStackClosure, NULL, ! &pt); } _gc_tracer_cm->report_gc_reference_stats(stats); ! pt.print_all_references(); } // This is the point where the entire marking should have completed. verify_work_stacks_empty();
*** 5259,5273 **** rp->set_enqueuing_is_done(true); if (rp->processing_is_mt()) { rp->balance_all_queues(); CMSRefProcTaskExecutor task_executor(*this); ! rp->enqueue_discovered_references(&task_executor); } else { ! rp->enqueue_discovered_references(NULL); } rp->verify_no_references_recorded(); assert(!rp->discovery_enabled(), "should have been disabled"); } #ifndef PRODUCT void CMSCollector::check_correct_thread_executing() { --- 5260,5275 ---- rp->set_enqueuing_is_done(true); if (rp->processing_is_mt()) { rp->balance_all_queues(); CMSRefProcTaskExecutor task_executor(*this); ! rp->enqueue_discovered_references(&task_executor, &pt); } else { ! rp->enqueue_discovered_references(NULL, &pt); } rp->verify_no_references_recorded(); + pt.print_enqueue_phase(); assert(!rp->discovery_enabled(), "should have been disabled"); } #ifndef PRODUCT void CMSCollector::check_correct_thread_executing() {
< prev index next >