< prev index next >
src/hotspot/share/gc/g1/g1CollectedHeap.cpp
Print this page
@@ -28,10 +28,11 @@
#include "classfile/symbolTable.hpp"
#include "code/codeCache.hpp"
#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"
#include "gc/g1/g1CollectorState.hpp"
#include "gc/g1/g1ConcurrentRefine.hpp"
@@ -1034,11 +1035,11 @@
if (_hot_card_cache->use_cache()) {
_hot_card_cache->reset_hot_cache();
}
// 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");
}
void G1CollectedHeap::verify_after_full_collection() {
_hrm.verify_optional();
@@ -1634,14 +1635,14 @@
}
// 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) {
return ecode;
}
@@ -1649,24 +1650,24 @@
ecode = initialize_young_gen_sampling_thread();
if (ecode != JNI_OK) {
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.
HeapRegion* dummy_region = _hrm.get_dummy_region();
@@ -1831,11 +1832,11 @@
void G1CollectedHeap::iterate_hcc_closure(CardTableEntryClosure* cl, uint worker_i) {
_hot_card_cache->drain(cl, worker_i);
}
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++;
}
g1_policy()->phase_times()->record_thread_work_item(G1GCPhaseTimes::UpdateRS, worker_i, n_completed_buffers);
@@ -2465,11 +2466,11 @@
size_t extra_cards = 0;
for (JavaThreadIteratorWithHandle jtiwh; JavaThread *curr = jtiwh.next(); ) {
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();
return buffer_size * buffer_num + extra_cards;
}
@@ -2549,11 +2550,11 @@
public:
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) {
if (!r->is_starts_humongous()) {
return false;
@@ -3625,11 +3626,11 @@
G1RedirtyLoggedCardsTask redirty_task(&dirty_card_queue_set(), this);
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");
g1_policy()->phase_times()->record_redirty_logged_cards_time_ms((os::elapsedTime() - redirty_logged_cards_start) * 1000.0);
}
< prev index next >