# HG changeset patch # User pliden # Date 1523514330 -7200 # Node ID c3a10df652c00cd0e661aa829487e3cde6376aa0 # Parent bdcfe8154201c86bc878c9fe32027f0ad0d4d767 8201316: Move G1-related static members from JavaThread to G1BarrierSet Reviewed-by: stefank, shade diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/gc/g1/g1BarrierSet.cpp --- a/src/hotspot/share/gc/g1/g1BarrierSet.cpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1BarrierSet.cpp Thu Apr 12 08:25:30 2018 +0200 @@ -37,25 +37,26 @@ #include "runtime/thread.inline.hpp" #include "utilities/macros.hpp" +SATBMarkQueueSet G1BarrierSet::_satb_mark_queue_set; +DirtyCardQueueSet G1BarrierSet::_dirty_card_queue_set; + G1BarrierSet::G1BarrierSet(G1CardTable* card_table) : CardTableBarrierSet(make_barrier_set_assembler(), card_table, - BarrierSet::FakeRtti(BarrierSet::G1BarrierSet)), - _dcqs(JavaThread::dirty_card_queue_set()) -{ } + BarrierSet::FakeRtti(BarrierSet::G1BarrierSet)) {} void G1BarrierSet::enqueue(oop pre_val) { // Nulls should have been already filtered. assert(oopDesc::is_oop(pre_val, true), "Error"); - if (!JavaThread::satb_mark_queue_set().is_active()) return; + if (!_satb_mark_queue_set.is_active()) return; Thread* thr = Thread::current(); if (thr->is_Java_thread()) { JavaThread* jt = (JavaThread*)thr; jt->satb_mark_queue().enqueue(pre_val); } else { MutexLockerEx x(Shared_SATB_Q_lock, Mutex::_no_safepoint_check_flag); - JavaThread::satb_mark_queue_set().shared_satb_queue()->enqueue(pre_val); + _satb_mark_queue_set.shared_satb_queue()->enqueue(pre_val); } } @@ -76,7 +77,7 @@ template void G1BarrierSet::write_ref_array_pre_work(T* dst, size_t count) { - if (!JavaThread::satb_mark_queue_set().is_active()) return; + if (!_satb_mark_queue_set.is_active()) return; T* elem_ptr = dst; for (size_t i = 0; i < count; i++, elem_ptr++) { T heap_oop = RawAccess<>::oop_load(elem_ptr); @@ -111,7 +112,7 @@ } else { MutexLockerEx x(Shared_DirtyCardQ_lock, Mutex::_no_safepoint_check_flag); - _dcqs.shared_dirty_card_queue()->enqueue(byte); + _dirty_card_queue_set.shared_dirty_card_queue()->enqueue(byte); } } } @@ -149,7 +150,7 @@ } if (*byte != G1CardTable::dirty_card_val()) { *byte = G1CardTable::dirty_card_val(); - _dcqs.shared_dirty_card_queue()->enqueue(byte); + _dirty_card_queue_set.shared_dirty_card_queue()->enqueue(byte); } } } @@ -181,7 +182,7 @@ // If we are creating the thread during a marking cycle, we should // set the active field of the SATB queue to true. - if (thread->satb_mark_queue_set().is_active()) { + if (_satb_mark_queue_set.is_active()) { thread->satb_mark_queue().set_active(true); } } diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/gc/g1/g1BarrierSet.hpp --- a/src/hotspot/share/gc/g1/g1BarrierSet.hpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1BarrierSet.hpp Thu Apr 12 08:25:30 2018 +0200 @@ -25,6 +25,8 @@ #ifndef SHARE_VM_GC_G1_G1BARRIERSET_HPP #define SHARE_VM_GC_G1_G1BARRIERSET_HPP +#include "gc/g1/dirtyCardQueue.hpp" +#include "gc/g1/satbMarkQueue.hpp" #include "gc/shared/cardTableBarrierSet.hpp" class DirtyCardQueueSet; @@ -37,7 +39,8 @@ class G1BarrierSet: public CardTableBarrierSet { friend class VMStructs; private: - DirtyCardQueueSet& _dcqs; + static SATBMarkQueueSet _satb_mark_queue_set; + static DirtyCardQueueSet _dirty_card_queue_set; public: G1BarrierSet(G1CardTable* table); @@ -74,6 +77,14 @@ virtual void on_thread_attach(JavaThread* thread); virtual void on_thread_detach(JavaThread* thread); + static SATBMarkQueueSet& satb_mark_queue_set() { + return _satb_mark_queue_set; + } + + static DirtyCardQueueSet& dirty_card_queue_set() { + return _dirty_card_queue_set; + } + // Callbacks for runtime accesses. template class AccessBarrier: public ModRefBarrierSet::AccessBarrier { diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/gc/g1/g1CollectedHeap.cpp --- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp Thu Apr 12 08:25:30 2018 +0200 @@ -30,6 +30,7 @@ #include "code/icBuffer.hpp" #include "gc/g1/bufferingOopClosure.hpp" #include "gc/g1/g1Allocator.inline.hpp" +#include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1CollectedHeap.inline.hpp" #include "gc/g1/g1CollectionSet.hpp" #include "gc/g1/g1CollectorPolicy.hpp" @@ -1036,7 +1037,7 @@ } // Discard all remembered set updates. - JavaThread::dirty_card_queue_set().abandon_logs(); + G1BarrierSet::dirty_card_queue_set().abandon_logs(); assert(dirty_card_queue_set().completed_buffers_num() == 0, "DCQS should be empty"); } @@ -1636,10 +1637,10 @@ // Perform any initialization actions delegated to the policy. g1_policy()->init(this, &_collection_set); - JavaThread::satb_mark_queue_set().initialize(SATB_Q_CBL_mon, - SATB_Q_FL_lock, - G1SATBProcessCompletedThreshold, - Shared_SATB_Q_lock); + G1BarrierSet::satb_mark_queue_set().initialize(SATB_Q_CBL_mon, + SATB_Q_FL_lock, + G1SATBProcessCompletedThreshold, + Shared_SATB_Q_lock); jint ecode = initialize_concurrent_refinement(); if (ecode != JNI_OK) { @@ -1651,20 +1652,20 @@ return ecode; } - JavaThread::dirty_card_queue_set().initialize(DirtyCardQ_CBL_mon, - DirtyCardQ_FL_lock, - (int)concurrent_refine()->yellow_zone(), - (int)concurrent_refine()->red_zone(), - Shared_DirtyCardQ_lock, - NULL, // fl_owner - true); // init_free_ids + G1BarrierSet::dirty_card_queue_set().initialize(DirtyCardQ_CBL_mon, + DirtyCardQ_FL_lock, + (int)concurrent_refine()->yellow_zone(), + (int)concurrent_refine()->red_zone(), + Shared_DirtyCardQ_lock, + NULL, // fl_owner + true); // init_free_ids dirty_card_queue_set().initialize(DirtyCardQ_CBL_mon, DirtyCardQ_FL_lock, -1, // never trigger processing -1, // no limit on length Shared_DirtyCardQ_lock, - &JavaThread::dirty_card_queue_set()); + &G1BarrierSet::dirty_card_queue_set()); // Here we allocate the dummy HeapRegion that is required by the // G1AllocRegion class. @@ -1833,7 +1834,7 @@ } void G1CollectedHeap::iterate_dirty_card_closure(CardTableEntryClosure* cl, uint worker_i) { - DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); size_t n_completed_buffers = 0; while (dcqs.apply_closure_during_gc(cl, worker_i)) { n_completed_buffers++; @@ -2467,7 +2468,7 @@ DirtyCardQueue& dcq = curr->dirty_card_queue(); extra_cards += dcq.size(); } - DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); size_t buffer_size = dcqs.buffer_size(); size_t buffer_num = dcqs.completed_buffers_num(); @@ -2551,7 +2552,7 @@ RegisterHumongousWithInCSetFastTestClosure() : _total_humongous(0), _candidate_humongous(0), - _dcq(&JavaThread::dirty_card_queue_set()) { + _dcq(&G1BarrierSet::dirty_card_queue_set()) { } virtual bool do_heap_region(HeapRegion* r) { @@ -3623,7 +3624,7 @@ dirty_card_queue_set().reset_for_par_iteration(); workers()->run_task(&redirty_task); - DirtyCardQueueSet& dcq = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcq = G1BarrierSet::dirty_card_queue_set(); dcq.merge_bufferlists(&dirty_card_queue_set()); assert(dirty_card_queue_set().completed_buffers_num() == 0, "All should be consumed"); diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/gc/g1/g1ConcurrentMark.cpp --- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Thu Apr 12 08:25:30 2018 +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); @@ -762,7 +763,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 */ @@ -1073,7 +1074,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. @@ -1695,7 +1696,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); } } } @@ -1755,7 +1756,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, @@ -1937,7 +1938,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. @@ -2147,7 +2148,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 @@ -2302,7 +2303,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. diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp --- a/src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp Thu Apr 12 08:25:30 2018 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ */ #include "precompiled.hpp" +#include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1ConcurrentRefine.hpp" #include "gc/g1/g1ConcurrentRefineThread.hpp" #include "logging/log.hpp" @@ -377,7 +378,7 @@ void G1ConcurrentRefine::adjust(double update_rs_time, size_t update_rs_processed_buffers, double goal_ms) { - DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); if (G1UseAdaptiveConcRefinement) { update_zones(update_rs_time, update_rs_processed_buffers, goal_ms); @@ -425,7 +426,7 @@ } bool G1ConcurrentRefine::do_refinement_step(uint worker_id) { - DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); size_t curr_buffer_num = dcqs.completed_buffers_num(); // If the number of the buffers falls down into the yellow zone, diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp --- a/src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp Thu Apr 12 08:25:30 2018 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ */ #include "precompiled.hpp" +#include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1ConcurrentRefine.hpp" #include "gc/g1/g1ConcurrentRefineThread.hpp" #include "gc/shared/suspendibleThreadSet.hpp" @@ -63,7 +64,7 @@ } bool G1ConcurrentRefineThread::is_active() { - DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); return is_primary() ? dcqs.process_completed_buffers() : _active; } @@ -72,7 +73,7 @@ if (!is_primary()) { set_active(true); } else { - DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); dcqs.set_process_completed(true); } _monitor->notify(); @@ -83,7 +84,7 @@ if (!is_primary()) { set_active(false); } else { - DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); dcqs.set_process_completed(false); } } @@ -101,7 +102,7 @@ size_t buffers_processed = 0; log_debug(gc, refine)("Activated worker %d, on threshold: " SIZE_FORMAT ", current: " SIZE_FORMAT, _worker_id, _cr->activation_threshold(_worker_id), - JavaThread::dirty_card_queue_set().completed_buffers_num()); + G1BarrierSet::dirty_card_queue_set().completed_buffers_num()); { SuspendibleThreadSetJoiner sts_join; @@ -123,7 +124,7 @@ log_debug(gc, refine)("Deactivated worker %d, off threshold: " SIZE_FORMAT ", current: " SIZE_FORMAT ", processed: " SIZE_FORMAT, _worker_id, _cr->deactivation_threshold(_worker_id), - JavaThread::dirty_card_queue_set().completed_buffers_num(), + G1BarrierSet::dirty_card_queue_set().completed_buffers_num(), buffers_processed); if (os::supports_vtime()) { diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/gc/g1/g1RemSet.cpp --- a/src/hotspot/share/gc/g1/g1RemSet.cpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1RemSet.cpp Thu Apr 12 08:25:30 2018 +0200 @@ -24,6 +24,7 @@ #include "precompiled.hpp" #include "gc/g1/dirtyCardQueue.hpp" +#include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1BlockOffsetTable.inline.hpp" #include "gc/g1/g1CardTable.inline.hpp" #include "gc/g1/g1CollectedHeap.inline.hpp" @@ -488,7 +489,7 @@ } void G1RemSet::prepare_for_oops_into_collection_set_do() { - DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); dcqs.concatenate_logs(); _scan_state->reset(); @@ -641,7 +642,7 @@ MutexLockerEx x(Shared_DirtyCardQ_lock, Mutex::_no_safepoint_check_flag); DirtyCardQueue* sdcq = - JavaThread::dirty_card_queue_set().shared_dirty_card_queue(); + G1BarrierSet::dirty_card_queue_set().shared_dirty_card_queue(); sdcq->enqueue(card_ptr); } } else { diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/gc/g1/g1RemSetSummary.cpp --- a/src/hotspot/share/gc/g1/g1RemSetSummary.cpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1RemSetSummary.cpp Thu Apr 12 08:25:30 2018 +0200 @@ -53,7 +53,7 @@ void G1RemSetSummary::update() { _num_conc_refined_cards = _rem_set->num_conc_refined_cards(); - DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); + DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); _num_processed_buf_mutator = dcqs.processed_buffers_mut(); _num_processed_buf_rs_threads = dcqs.processed_buffers_rs_thread(); diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/gc/g1/g1RootProcessor.cpp --- a/src/hotspot/share/gc/g1/g1RootProcessor.cpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1RootProcessor.cpp Thu Apr 12 08:25:30 2018 +0200 @@ -29,6 +29,7 @@ #include "classfile/systemDictionary.hpp" #include "code/codeCache.hpp" #include "gc/g1/bufferingOopClosure.hpp" +#include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1CodeBlobClosure.hpp" #include "gc/g1/g1CollectedHeap.inline.hpp" #include "gc/g1/g1CollectorState.hpp" @@ -134,7 +135,7 @@ { G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::SATBFiltering, worker_i); if (!_process_strong_tasks.is_task_claimed(G1RP_PS_filter_satb_buffers) && _g1h->collector_state()->mark_or_rebuild_in_progress()) { - JavaThread::satb_mark_queue_set().filter_thread_buffers(); + G1BarrierSet::satb_mark_queue_set().filter_thread_buffers(); } } diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/runtime/thread.cpp --- a/src/hotspot/share/runtime/thread.cpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/runtime/thread.cpp Thu Apr 12 08:25:30 2018 +0200 @@ -115,6 +115,7 @@ #include "utilities/vmError.hpp" #if INCLUDE_ALL_GCS #include "gc/cms/concurrentMarkSweepThread.hpp" +#include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1ConcurrentMarkThread.inline.hpp" #include "gc/parallel/pcTasks.hpp" #endif // INCLUDE_ALL_GCS @@ -1589,16 +1590,11 @@ pd_initialize(); } -#if INCLUDE_ALL_GCS -SATBMarkQueueSet JavaThread::_satb_mark_queue_set; -DirtyCardQueueSet JavaThread::_dirty_card_queue_set; -#endif // INCLUDE_ALL_GCS - JavaThread::JavaThread(bool is_attaching_via_jni) : Thread() #if INCLUDE_ALL_GCS - , _satb_mark_queue(&_satb_mark_queue_set), - _dirty_card_queue(&_dirty_card_queue_set) + , _satb_mark_queue(&G1BarrierSet::satb_mark_queue_set()), + _dirty_card_queue(&G1BarrierSet::dirty_card_queue_set()) #endif // INCLUDE_ALL_GCS { initialize(); @@ -1664,8 +1660,8 @@ JavaThread::JavaThread(ThreadFunction entry_point, size_t stack_sz) : Thread() #if INCLUDE_ALL_GCS - , _satb_mark_queue(&_satb_mark_queue_set), - _dirty_card_queue(&_dirty_card_queue_set) + , _satb_mark_queue(&G1BarrierSet::satb_mark_queue_set()), + _dirty_card_queue(&G1BarrierSet::dirty_card_queue_set()) #endif // INCLUDE_ALL_GCS { initialize(); diff -r bdcfe8154201 -r c3a10df652c0 src/hotspot/share/runtime/thread.hpp --- a/src/hotspot/share/runtime/thread.hpp Wed Mar 28 22:03:57 2018 +0200 +++ b/src/hotspot/share/runtime/thread.hpp Thu Apr 12 08:25:30 2018 +0200 @@ -1063,12 +1063,8 @@ // Support for G1 barriers SATBMarkQueue _satb_mark_queue; // Thread-local log for SATB barrier. - // Set of all such queues. - static SATBMarkQueueSet _satb_mark_queue_set; DirtyCardQueue _dirty_card_queue; // Thread-local log for dirty cards. - // Set of all such queues. - static DirtyCardQueueSet _dirty_card_queue_set; #endif // INCLUDE_ALL_GCS friend class VMThread; @@ -1948,15 +1944,9 @@ #if INCLUDE_ALL_GCS // SATB marking queue support SATBMarkQueue& satb_mark_queue() { return _satb_mark_queue; } - static SATBMarkQueueSet& satb_mark_queue_set() { - return _satb_mark_queue_set; - } // Dirty card queue support DirtyCardQueue& dirty_card_queue() { return _dirty_card_queue; } - static DirtyCardQueueSet& dirty_card_queue_set() { - return _dirty_card_queue_set; - } #endif // INCLUDE_ALL_GCS // Machine dependent stuff