7023747: G1: too strict assert in RefineRecordRefsIntoCSCardTableEntryClosure::do_card_ptr in g1RemSet.cpp
Summary: Made sure that the assert looks at ParallelGCThreads.
Reviewed-by: stefank, tonyp, jwilhelm, johnc
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp Thu Mar 03 22:58:46 2011 +0100
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp Thu Mar 03 11:35:50 2011 +0100
@@ -373,7 +373,7 @@
// RSet updating while within an evacuation pause.
// In this case worker_i should be the id of a GC worker thread
assert(SafepointSynchronize::is_at_safepoint(), "not during an evacuation pause");
- assert(worker_i < (int) DirtyCardQueueSet::num_par_ids(), "incorrect worker id");
+ assert(worker_i < (int) (ParallelGCThreads == 0 ? 1 : ParallelGCThreads), "incorrect worker id");
into_cset_dcq->enqueue(entry);
}
}
--- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp Thu Mar 03 22:58:46 2011 +0100
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp Thu Mar 03 11:35:50 2011 +0100
@@ -307,7 +307,7 @@
// is during RSet updating within an evacuation pause.
// In this case worker_i should be the id of a GC worker thread.
assert(SafepointSynchronize::is_at_safepoint(), "not during an evacuation pause");
- assert(worker_i < (int) DirtyCardQueueSet::num_par_ids(), "should be a GC worker");
+ assert(worker_i < (int) (ParallelGCThreads == 0 ? 1 : ParallelGCThreads), "should be a GC worker");
if (_g1rs->concurrentRefineOneCard(card_ptr, worker_i, true)) {
// 'card_ptr' contains references that point into the collection