# HG changeset patch # User johnc # Date 1298052454 28800 # Node ID 1ec37096cecfc19fbbba0fcafbae51471a8f2f8d # Parent c6491db25cb2daf50242fcf538d6405bc9bc02d8 7020042: G1: Partially remove fix for 6994628 Summary: Disable reference discovery and processing during concurrent marking by disabling fix for 6994628. Reviewed-by: tonyp, ysr diff -r c6491db25cb2 -r 1ec37096cecf src/share/vm/gc_implementation/g1/concurrentMark.cpp --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Thu Feb 17 21:11:47 2011 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Fri Feb 18 10:07:34 2011 -0800 @@ -2951,8 +2951,12 @@ CMTask* task) : _g1h(g1h), _cm(cm), _task(task) { - _ref_processor = g1h->ref_processor(); - assert(_ref_processor != NULL, "should not be NULL"); + assert(_ref_processor == NULL, "should be initialized to NULL"); + + if (G1UseConcMarkReferenceProcessing) { + _ref_processor = g1h->ref_processor(); + assert(_ref_processor != NULL, "should not be NULL"); + } } }; diff -r c6491db25cb2 -r 1ec37096cecf src/share/vm/gc_implementation/g1/g1_globals.hpp --- a/src/share/vm/gc_implementation/g1/g1_globals.hpp Thu Feb 17 21:11:47 2011 -0800 +++ b/src/share/vm/gc_implementation/g1/g1_globals.hpp Fri Feb 18 10:07:34 2011 -0800 @@ -81,6 +81,11 @@ product(intx, G1MarkRegionStackSize, 1024 * 1024, \ "Size of the region stack for concurrent marking.") \ \ + experimental(bool, G1UseConcMarkReferenceProcessing, false, \ + "If true, enable reference discovery during concurrent " \ + "marking and reference processing at the end of remark " \ + "(unsafe).") \ + \ develop(bool, G1SATBBarrierPrintNullPreVals, false, \ "If true, count frac of ptr writes with null pre-vals.") \ \