107 class ScanRSClosure : public HeapRegionClosure { |
107 class ScanRSClosure : public HeapRegionClosure { |
108 size_t _cards_done, _cards; |
108 size_t _cards_done, _cards; |
109 G1CollectedHeap* _g1h; |
109 G1CollectedHeap* _g1h; |
110 |
110 |
111 OopsInHeapRegionClosure* _oc; |
111 OopsInHeapRegionClosure* _oc; |
112 CodeBlobToOopClosure* _code_root_cl; |
112 CodeBlobClosure* _code_root_cl; |
113 |
113 |
114 G1BlockOffsetSharedArray* _bot_shared; |
114 G1BlockOffsetSharedArray* _bot_shared; |
115 G1SATBCardTableModRefBS *_ct_bs; |
115 G1SATBCardTableModRefBS *_ct_bs; |
116 |
116 |
117 double _strong_code_root_scan_time_sec; |
117 double _strong_code_root_scan_time_sec; |
119 int _block_size; |
119 int _block_size; |
120 bool _try_claimed; |
120 bool _try_claimed; |
121 |
121 |
122 public: |
122 public: |
123 ScanRSClosure(OopsInHeapRegionClosure* oc, |
123 ScanRSClosure(OopsInHeapRegionClosure* oc, |
124 CodeBlobToOopClosure* code_root_cl, |
124 CodeBlobClosure* code_root_cl, |
125 uint worker_i) : |
125 uint worker_i) : |
126 _oc(oc), |
126 _oc(oc), |
127 _code_root_cl(code_root_cl), |
127 _code_root_cl(code_root_cl), |
128 _strong_code_root_scan_time_sec(0.0), |
128 _strong_code_root_scan_time_sec(0.0), |
129 _cards(0), |
129 _cards(0), |
239 size_t cards_done() { return _cards_done;} |
239 size_t cards_done() { return _cards_done;} |
240 size_t cards_looked_up() { return _cards;} |
240 size_t cards_looked_up() { return _cards;} |
241 }; |
241 }; |
242 |
242 |
243 void G1RemSet::scanRS(OopsInHeapRegionClosure* oc, |
243 void G1RemSet::scanRS(OopsInHeapRegionClosure* oc, |
244 CodeBlobToOopClosure* code_root_cl, |
244 CodeBlobClosure* code_root_cl, |
245 uint worker_i) { |
245 uint worker_i) { |
246 double rs_time_start = os::elapsedTime(); |
246 double rs_time_start = os::elapsedTime(); |
247 HeapRegion *startRegion = _g1->start_cset_region_for_worker(worker_i); |
247 HeapRegion *startRegion = _g1->start_cset_region_for_worker(worker_i); |
248 |
248 |
249 ScanRSClosure scanRScl(oc, code_root_cl, worker_i); |
249 ScanRSClosure scanRScl(oc, code_root_cl, worker_i); |
318 void G1RemSet::cleanupHRRS() { |
318 void G1RemSet::cleanupHRRS() { |
319 HeapRegionRemSet::cleanup(); |
319 HeapRegionRemSet::cleanup(); |
320 } |
320 } |
321 |
321 |
322 void G1RemSet::oops_into_collection_set_do(OopsInHeapRegionClosure* oc, |
322 void G1RemSet::oops_into_collection_set_do(OopsInHeapRegionClosure* oc, |
323 CodeBlobToOopClosure* code_root_cl, |
323 CodeBlobClosure* code_root_cl, |
324 uint worker_i) { |
324 uint worker_i) { |
325 #if CARD_REPEAT_HISTO |
325 #if CARD_REPEAT_HISTO |
326 ct_freq_update_histo_and_reset(); |
326 ct_freq_update_histo_and_reset(); |
327 #endif |
327 #endif |
328 |
328 |