168 // be refined concurrently. Calculation is done on a best-effort basis.
169 size_t num_cards_pending() const;
170 // Number of cards newly generated by references into evacuation failed regions.
171 // Calculation is done on a best-effort basis.
172 size_t num_cards_from_evac_failure() const;
173 // Sum of cards marked by evacuation. Contains both pending cards as well as cards
174 // into the next collection set (e.g. survivors).
175 size_t num_cards_marked() const;
176
177 // Pass locally gathered statistics to global state. Returns the total number of
178 // HeapWords copied.
179 size_t flush_stats(size_t* surviving_young_words, uint num_workers);
180
181 #if TASKQUEUE_STATS
182 PartialArrayTaskStats* partial_array_task_stats();
183 #endif // TASKQUEUE_STATS
184
185 private:
186 void do_partial_array(PartialArrayState* state, bool stolen);
187 void start_partial_objarray(oop from, oop to);
188
189 HeapWord* allocate_copy_slow(G1HeapRegionAttr* dest_attr,
190 Klass* klass,
191 size_t word_sz,
192 uint age,
193 uint node_index);
194
195 void undo_allocation(G1HeapRegionAttr dest_addr,
196 HeapWord* obj_ptr,
197 size_t word_sz,
198 uint node_index);
199
200 void update_bot_after_copying(oop obj, size_t word_sz);
201
202 void do_iterate_object(oop const obj,
203 oop const old,
204 Klass* const klass,
205 G1HeapRegionAttr const region_attr,
206 G1HeapRegionAttr const dest_attr,
207 uint age);
|
168 // be refined concurrently. Calculation is done on a best-effort basis.
169 size_t num_cards_pending() const;
170 // Number of cards newly generated by references into evacuation failed regions.
171 // Calculation is done on a best-effort basis.
172 size_t num_cards_from_evac_failure() const;
173 // Sum of cards marked by evacuation. Contains both pending cards as well as cards
174 // into the next collection set (e.g. survivors).
175 size_t num_cards_marked() const;
176
177 // Pass locally gathered statistics to global state. Returns the total number of
178 // HeapWords copied.
179 size_t flush_stats(size_t* surviving_young_words, uint num_workers);
180
181 #if TASKQUEUE_STATS
182 PartialArrayTaskStats* partial_array_task_stats();
183 #endif // TASKQUEUE_STATS
184
185 private:
186 void do_partial_array(PartialArrayState* state, bool stolen);
187 void start_partial_objarray(oop from, oop to);
188 void process_array_chunk(objArrayOop obj, size_t start, size_t end);
189
190 HeapWord* allocate_copy_slow(G1HeapRegionAttr* dest_attr,
191 Klass* klass,
192 size_t word_sz,
193 uint age,
194 uint node_index);
195
196 void undo_allocation(G1HeapRegionAttr dest_addr,
197 HeapWord* obj_ptr,
198 size_t word_sz,
199 uint node_index);
200
201 void update_bot_after_copying(oop obj, size_t word_sz);
202
203 void do_iterate_object(oop const obj,
204 oop const old,
205 Klass* const klass,
206 G1HeapRegionAttr const region_attr,
207 G1HeapRegionAttr const dest_attr,
208 uint age);
|