< prev index next >
src/hotspot/share/gc/shared/referenceProcessor.cpp
Print this page
rev 49684 : imported patch 8201487-do-not-rebalance-with-serial-processing
*** 792,811 ****
{
bool mt_processing = task_executor != NULL && _processing_is_mt;
phase_times->set_processing_is_mt(mt_processing);
! // If discovery used MT and a dynamic number of GC threads, then
! // the queues must be balanced for correctness if fewer than the
! // maximum number of queues were used. The number of queue used
! // during discovery may be different than the number to be used
! // for processing so don't depend of _num_q < _max_num_q as part
! // of the test.
! bool must_balance = _discovery_is_mt;
!
! if ((mt_processing && ParallelRefProcBalancingEnabled) ||
! must_balance) {
RefProcBalanceQueuesTimeTracker tt(phase_times);
balance_queues(refs_lists);
}
// Phase 1 (soft refs only):
--- 792,802 ----
{
bool mt_processing = task_executor != NULL && _processing_is_mt;
phase_times->set_processing_is_mt(mt_processing);
! if (mt_processing && ParallelRefProcBalancingEnabled) {
RefProcBalanceQueuesTimeTracker tt(phase_times);
balance_queues(refs_lists);
}
// Phase 1 (soft refs only):
< prev index next >