< 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 >