< prev index next >

src/share/vm/gc/g1/g1RemSet.cpp

Print this page
rev 9085 : imported patch stefank-patch2
rev 9087 : imported patch parpush

*** 30,39 **** --- 30,40 ---- #include "gc/g1/g1CollectorPolicy.hpp" #include "gc/g1/g1GCPhaseTimes.hpp" #include "gc/g1/g1HotCardCache.hpp" #include "gc/g1/g1OopClosures.inline.hpp" #include "gc/g1/g1RemSet.inline.hpp" + #include "gc/g1/g1RootClosures.hpp" #include "gc/g1/heapRegionManager.inline.hpp" #include "gc/g1/heapRegionRemSet.hpp" #include "memory/iterator.hpp" #include "oops/oop.inline.hpp" #include "utilities/globalDefinitions.hpp"
*** 224,241 **** size_t cards_done() { return _cards_done;} size_t cards_looked_up() { return _cards;} }; ! size_t G1RemSet::scanRS(G1ParPushHeapRSClosure* oc, ! CodeBlobClosure* heap_region_codeblobs, uint worker_i) { double rs_time_start = os::elapsedTime(); HeapRegion *startRegion = _g1->start_cset_region_for_worker(worker_i); ! ScanRSClosure scanRScl(oc, heap_region_codeblobs, worker_i); _g1->collection_set_iterate_from(startRegion, &scanRScl); scanRScl.set_try_claimed(); _g1->collection_set_iterate_from(startRegion, &scanRScl); --- 225,243 ---- size_t cards_done() { return _cards_done;} size_t cards_looked_up() { return _cards;} }; ! size_t G1RemSet::scanRS(G1EvacuationRootClosures* closures, uint worker_i) { double rs_time_start = os::elapsedTime(); HeapRegion *startRegion = _g1->start_cset_region_for_worker(worker_i); ! ScanRSClosure scanRScl(closures->inter_region_oops(), ! closures->weak_codeblobs(), ! worker_i); _g1->collection_set_iterate_from(startRegion, &scanRScl); scanRScl.set_try_claimed(); _g1->collection_set_iterate_from(startRegion, &scanRScl);
*** 291,311 **** void G1RemSet::cleanupHRRS() { HeapRegionRemSet::cleanup(); } ! size_t G1RemSet::oops_into_collection_set_do(G1ParPushHeapRSClosure* oc, ! CodeBlobClosure* heap_region_codeblobs, uint worker_i) { #if CARD_REPEAT_HISTO ct_freq_update_histo_and_reset(); #endif // We cache the value of 'oc' closure into the appropriate slot in the // _cset_rs_update_cl for this worker assert(worker_i < n_workers(), "sanity"); ! _cset_rs_update_cl[worker_i] = oc; // A DirtyCardQueue that is used to hold cards containing references // that point into the collection set. This DCQ is associated with a // special DirtyCardQueueSet (see g1CollectedHeap.hpp). Under normal // circumstances (i.e. the pause successfully completes), these cards --- 293,312 ---- void G1RemSet::cleanupHRRS() { HeapRegionRemSet::cleanup(); } ! size_t G1RemSet::oops_into_collection_set_do(G1EvacuationRootClosures* closures, uint worker_i) { #if CARD_REPEAT_HISTO ct_freq_update_histo_and_reset(); #endif // We cache the value of 'oc' closure into the appropriate slot in the // _cset_rs_update_cl for this worker assert(worker_i < n_workers(), "sanity"); ! _cset_rs_update_cl[worker_i] = closures->inter_region_oops(); // A DirtyCardQueue that is used to hold cards containing references // that point into the collection set. This DCQ is associated with a // special DirtyCardQueueSet (see g1CollectedHeap.hpp). Under normal // circumstances (i.e. the pause successfully completes), these cards
*** 315,325 **** // failure the cards/buffers in this queue set are passed to the // DirtyCardQueueSet that is used to manage RSet updates DirtyCardQueue into_cset_dcq(&_g1->into_cset_dirty_card_queue_set()); updateRS(&into_cset_dcq, worker_i); ! size_t cards_scanned = scanRS(oc, heap_region_codeblobs, worker_i); // We now clear the cached values of _cset_rs_update_cl for this worker _cset_rs_update_cl[worker_i] = NULL; return cards_scanned; } --- 316,326 ---- // failure the cards/buffers in this queue set are passed to the // DirtyCardQueueSet that is used to manage RSet updates DirtyCardQueue into_cset_dcq(&_g1->into_cset_dirty_card_queue_set()); updateRS(&into_cset_dcq, worker_i); ! size_t cards_scanned = scanRS(closures, worker_i); // We now clear the cached values of _cset_rs_update_cl for this worker _cset_rs_update_cl[worker_i] = NULL; return cards_scanned; }
< prev index next >