111 // code) any thread calls oops_into_collection_set_do.
112 void prepare_for_oops_into_collection_set_do();
113 void cleanup_after_oops_into_collection_set_do();
114
115 G1RemSetScanState* scan_state() const { return _scan_state; }
116
117 // Record, if necessary, the fact that *p (where "p" is in region "from",
118 // which is required to be non-NULL) has changed to a new non-NULL value.
119 template <class T> void par_write_ref(HeapRegion* from, T* p, uint tid);
120
121 // Eliminates any remembered set entries that correspond to dead heap ranges.
122 void scrub(uint worker_num, HeapRegionClaimer* hrclaimer);
123
124 // Refine the card corresponding to "card_ptr". Safe to be called concurrently
125 // to the mutator.
126 void refine_card_concurrently(jbyte* card_ptr,
127 uint worker_i);
128
129 // Refine the card corresponding to "card_ptr", applying the given closure to
130 // all references found.Must only be called during gc.
131 void refine_card_during_gc(jbyte* card_ptr, G1ScanObjsDuringUpdateRSClosure* update_rs_cl);
132
133 // Print accumulated summary info from the start of the VM.
134 void print_summary_info();
135
136 // Print accumulated summary info from the last time called.
137 void print_periodic_summary_info(const char* header, uint period_count);
138
139 size_t num_conc_refined_cards() const { return _num_conc_refined_cards; }
140
141 void create_card_live_data(WorkGang* workers, G1CMBitMap* mark_bitmap);
142 void finalize_card_live_data(WorkGang* workers, G1CMBitMap* mark_bitmap);
143
144 // Verify that the liveness count data created concurrently matches one created
145 // during this safepoint.
146 void verify_card_live_data(WorkGang* workers, G1CMBitMap* actual_bitmap);
147
148 void clear_card_live_data(WorkGang* workers);
149
150 #ifdef ASSERT
151 void verify_card_live_data_is_clear();
|
111 // code) any thread calls oops_into_collection_set_do.
112 void prepare_for_oops_into_collection_set_do();
113 void cleanup_after_oops_into_collection_set_do();
114
115 G1RemSetScanState* scan_state() const { return _scan_state; }
116
117 // Record, if necessary, the fact that *p (where "p" is in region "from",
118 // which is required to be non-NULL) has changed to a new non-NULL value.
119 template <class T> void par_write_ref(HeapRegion* from, T* p, uint tid);
120
121 // Eliminates any remembered set entries that correspond to dead heap ranges.
122 void scrub(uint worker_num, HeapRegionClaimer* hrclaimer);
123
124 // Refine the card corresponding to "card_ptr". Safe to be called concurrently
125 // to the mutator.
126 void refine_card_concurrently(jbyte* card_ptr,
127 uint worker_i);
128
129 // Refine the card corresponding to "card_ptr", applying the given closure to
130 // all references found.Must only be called during gc.
131 // Returns whether the card has been scanned.
132 bool refine_card_during_gc(jbyte* card_ptr, G1ScanObjsDuringUpdateRSClosure* update_rs_cl);
133
134 // Print accumulated summary info from the start of the VM.
135 void print_summary_info();
136
137 // Print accumulated summary info from the last time called.
138 void print_periodic_summary_info(const char* header, uint period_count);
139
140 size_t num_conc_refined_cards() const { return _num_conc_refined_cards; }
141
142 void create_card_live_data(WorkGang* workers, G1CMBitMap* mark_bitmap);
143 void finalize_card_live_data(WorkGang* workers, G1CMBitMap* mark_bitmap);
144
145 // Verify that the liveness count data created concurrently matches one created
146 // during this safepoint.
147 void verify_card_live_data(WorkGang* workers, G1CMBitMap* actual_bitmap);
148
149 void clear_card_live_data(WorkGang* workers);
150
151 #ifdef ASSERT
152 void verify_card_live_data_is_clear();
|