equal
deleted
inserted
replaced
22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
26 #include "gc/g1/dirtyCardQueue.hpp" |
26 #include "gc/g1/dirtyCardQueue.hpp" |
|
27 #include "gc/g1/g1BarrierSet.hpp" |
27 #include "gc/g1/g1BlockOffsetTable.inline.hpp" |
28 #include "gc/g1/g1BlockOffsetTable.inline.hpp" |
28 #include "gc/g1/g1CardTable.inline.hpp" |
29 #include "gc/g1/g1CardTable.inline.hpp" |
29 #include "gc/g1/g1CollectedHeap.inline.hpp" |
30 #include "gc/g1/g1CollectedHeap.inline.hpp" |
30 #include "gc/g1/g1ConcurrentRefine.hpp" |
31 #include "gc/g1/g1ConcurrentRefine.hpp" |
31 #include "gc/g1/g1FromCardCache.hpp" |
32 #include "gc/g1/g1FromCardCache.hpp" |
486 update_rem_set(pss, worker_i); |
487 update_rem_set(pss, worker_i); |
487 scan_rem_set(pss, heap_region_codeblobs, worker_i);; |
488 scan_rem_set(pss, heap_region_codeblobs, worker_i);; |
488 } |
489 } |
489 |
490 |
490 void G1RemSet::prepare_for_oops_into_collection_set_do() { |
491 void G1RemSet::prepare_for_oops_into_collection_set_do() { |
491 DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); |
492 DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); |
492 dcqs.concatenate_logs(); |
493 dcqs.concatenate_logs(); |
493 |
494 |
494 _scan_state->reset(); |
495 _scan_state->reset(); |
495 } |
496 } |
496 |
497 |
639 if (*card_ptr != G1CardTable::dirty_card_val()) { |
640 if (*card_ptr != G1CardTable::dirty_card_val()) { |
640 *card_ptr = G1CardTable::dirty_card_val(); |
641 *card_ptr = G1CardTable::dirty_card_val(); |
641 MutexLockerEx x(Shared_DirtyCardQ_lock, |
642 MutexLockerEx x(Shared_DirtyCardQ_lock, |
642 Mutex::_no_safepoint_check_flag); |
643 Mutex::_no_safepoint_check_flag); |
643 DirtyCardQueue* sdcq = |
644 DirtyCardQueue* sdcq = |
644 JavaThread::dirty_card_queue_set().shared_dirty_card_queue(); |
645 G1BarrierSet::dirty_card_queue_set().shared_dirty_card_queue(); |
645 sdcq->enqueue(card_ptr); |
646 sdcq->enqueue(card_ptr); |
646 } |
647 } |
647 } else { |
648 } else { |
648 _num_conc_refined_cards++; // Unsynchronized update, only used for logging. |
649 _num_conc_refined_cards++; // Unsynchronized update, only used for logging. |
649 } |
650 } |