--- old/src/share/vm/gc/g1/g1RemSet.cpp 2017-07-12 12:13:59.228128772 +0200 +++ new/src/share/vm/gc/g1/g1RemSet.cpp 2017-07-12 12:13:59.132125795 +0200 @@ -36,6 +36,7 @@ #include "gc/g1/heapRegion.inline.hpp" #include "gc/g1/heapRegionManager.inline.hpp" #include "gc/g1/heapRegionRemSet.hpp" +#include "gc/g1/suspendibleThreadSet.hpp" #include "gc/shared/gcTraceTime.inline.hpp" #include "memory/iterator.hpp" #include "memory/resourceArea.hpp" @@ -292,8 +293,7 @@ { // Initialize the card queue set used to hold cards containing // references into the collection set. - _into_cset_dirty_card_queue_set.initialize(NULL, // Should never be called by the Java code - DirtyCardQ_CBL_mon, + _into_cset_dirty_card_queue_set.initialize(DirtyCardQ_CBL_mon, DirtyCardQ_FL_lock, -1, // never trigger processing -1, // no limit on length @@ -519,7 +519,6 @@ } void G1RemSet::prepare_for_oops_into_collection_set_do() { - _g1->set_refine_cte_cl_concurrency(false); DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); dcqs.concatenate_logs(); @@ -528,8 +527,6 @@ void G1RemSet::cleanup_after_oops_into_collection_set_do() { G1GCPhaseTimes* phase_times = _g1->g1_policy()->phase_times(); - // Cleanup after copy - _g1->set_refine_cte_cl_concurrency(true); // Set all cards back to clean. double start = os::elapsedTime(); @@ -803,7 +800,7 @@ Log(gc, remset, exit) log; if (log.is_trace()) { log.trace(" Cumulative RS summary"); - G1RemSetSummary current; + G1RemSetSummary current(this); ResourceMark rm; current.print_on(log.trace_stream()); }