# HG changeset patch # User johnc # Date 1298052454 28800 # Node ID 8f1042ff784d99af7c25de7725d62efd475be164 # Parent 371bbc844bf1990cd7c7ad30a045cafe8394ccad 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 371bbc844bf1 -r 8f1042ff784d src/share/vm/gc_implementation/g1/concurrentMark.cpp --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Mon Apr 04 14:23:17 2011 -0400 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Fri Feb 18 10:07:34 2011 -0800 @@ -3203,8 +3203,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 371bbc844bf1 -r 8f1042ff784d src/share/vm/gc_implementation/g1/g1_globals.hpp --- a/src/share/vm/gc_implementation/g1/g1_globals.hpp Mon Apr 04 14:23:17 2011 -0400 +++ b/src/share/vm/gc_implementation/g1/g1_globals.hpp Fri Feb 18 10:07:34 2011 -0800 @@ -89,6 +89,11 @@ "The number of discovered reference objects to process before " \ "draining concurrent marking work queues.") \ \ + 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.") \ \