1.1 --- a/src/share/vm/gc_implementation/g1/g1RemSet.cpp Mon Mar 16 08:01:32 2009 -0700 1.2 +++ b/src/share/vm/gc_implementation/g1/g1RemSet.cpp Mon Mar 16 10:52:44 2009 -0400 1.3 @@ -502,14 +502,17 @@ 1.4 } 1.5 1.6 if (ParallelGCThreads > 0) { 1.7 - // This is a temporary change to serialize the update and scanning 1.8 - // of remembered sets. There are some race conditions when this is 1.9 - // done in parallel and they are causing failures. When we resolve 1.10 - // said race conditions, we'll revert back to parallel remembered 1.11 - // set updating and scanning. See CRs 6677707 and 6677708. 1.12 - if (worker_i == 0) { 1.13 + // The two flags below were introduced temporarily to serialize 1.14 + // the updating and scanning of remembered sets. There are some 1.15 + // race conditions when these two operations are done in parallel 1.16 + // and they are causing failures. When we resolve said race 1.17 + // conditions, we'll revert back to parallel remembered set 1.18 + // updating and scanning. See CRs 6677707 and 6677708. 1.19 + if (G1EnableParallelRSetUpdating || (worker_i == 0)) { 1.20 updateRS(worker_i); 1.21 scanNewRefsRS(oc, worker_i); 1.22 + } 1.23 + if (G1EnableParallelRSetScanning || (worker_i == 0)) { 1.24 scanRS(oc, worker_i); 1.25 } 1.26 } else {