--- old/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp 2018-04-10 12:59:17.170018159 +0200 +++ new/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp 2018-04-10 12:59:16.994010533 +0200 @@ -26,6 +26,7 @@ #include "classfile/metadataOnStackMark.hpp" #include "classfile/symbolTable.hpp" #include "code/codeCache.hpp" +#include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1CollectedHeap.inline.hpp" #include "gc/g1/g1CollectorState.hpp" #include "gc/g1/g1ConcurrentMark.inline.hpp" @@ -405,7 +406,7 @@ assert(CGC_lock != NULL, "CGC_lock must be initialized"); - SATBMarkQueueSet& satb_qs = JavaThread::satb_mark_queue_set(); + SATBMarkQueueSet& satb_qs = G1BarrierSet::satb_mark_queue_set(); satb_qs.set_buffer_size(G1SATBBufferSize); _root_regions.init(_g1h->survivor(), this); @@ -757,7 +758,7 @@ rp->enable_discovery(); rp->setup_policy(false); // snapshot the soft ref policy to be used in this cycle - SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set(); + SATBMarkQueueSet& satb_mq_set = G1BarrierSet::satb_mark_queue_set(); // This is the start of the marking cycle, we're expected all // threads to have SATB queues with active set to false. satb_mq_set.set_active_all_threads(true, /* new active value */ @@ -1068,7 +1069,7 @@ if (mark_finished) { weak_refs_work(false /* clear_all_soft_refs */); - SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set(); + SATBMarkQueueSet& satb_mq_set = G1BarrierSet::satb_mark_queue_set(); // We're done with marking. // This is the end of the marking cycle, we're expected all // threads to have SATB queues with active set to true. @@ -1690,7 +1691,7 @@ } } else if (thread->is_VM_thread()) { if (thread->claim_oops_do(true, _thread_parity)) { - JavaThread::satb_mark_queue_set().shared_satb_queue()->apply_closure_and_empty(&_cm_satb_cl); + G1BarrierSet::satb_mark_queue_set().shared_satb_queue()->apply_closure_and_empty(&_cm_satb_cl); } } } @@ -1750,7 +1751,7 @@ _g1h->workers()->run_task(&remarkTask); } - SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set(); + SATBMarkQueueSet& satb_mq_set = G1BarrierSet::satb_mark_queue_set(); guarantee(has_overflown() || satb_mq_set.completed_buffers_num() == 0, "Invariant: has_overflown = %s, num buffers = " SIZE_FORMAT, @@ -1932,7 +1933,7 @@ _second_overflow_barrier_sync.abort(); _has_aborted = true; - SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set(); + SATBMarkQueueSet& satb_mq_set = G1BarrierSet::satb_mark_queue_set(); satb_mq_set.abandon_partial_marking(); // This can be called either during or outside marking, we'll read // the expected_active value from the SATB queue set. @@ -2142,7 +2143,7 @@ // (6) Finally, we check whether there are enough completed STAB // buffers available for processing. If there are, we abort. - SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set(); + SATBMarkQueueSet& satb_mq_set = G1BarrierSet::satb_mark_queue_set(); if (!_draining_satb_buffers && satb_mq_set.process_completed_buffers()) { // we do need to process SATB buffers, we'll abort and restart // the marking task to do so @@ -2297,7 +2298,7 @@ _draining_satb_buffers = true; G1CMSATBBufferClosure satb_cl(this, _g1h); - SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set(); + SATBMarkQueueSet& satb_mq_set = G1BarrierSet::satb_mark_queue_set(); // This keeps claiming and applying the closure to completed buffers // until we run out of buffers or we need to abort.