< prev index next >

src/hotspot/share/gc/g1/g1ParScanThreadState.hpp

Print this page

150       _last_enqueued_card = card_index;
151     }
152   }
153 
154   G1EvacuationRootClosures* closures() { return _closures; }
155   uint worker_id() { return _worker_id; }
156 
157   size_t lab_waste_words() const;
158   size_t lab_undo_waste_words() const;
159 
160   // Pass locally gathered statistics to global state. Returns the total number of
161   // HeapWords copied.
162   size_t flush(size_t* surviving_young_words);
163 
164 private:
165   void do_partial_array(PartialArrayScanTask task);
166   void start_partial_objarray(G1HeapRegionAttr dest_dir, oop from, oop to);
167 
168   HeapWord* allocate_copy_slow(G1HeapRegionAttr* dest_attr,
169                                oop old,

170                                size_t word_sz,
171                                uint age,
172                                uint node_index);
173 
174   void undo_allocation(G1HeapRegionAttr dest_addr,
175                        HeapWord* obj_ptr,
176                        size_t word_sz,
177                        uint node_index);
178 
179   oop do_copy_to_survivor_space(G1HeapRegionAttr region_attr,
180                                 oop obj,
181                                 markWord old_mark);
182 
183   // This method is applied to the fields of the objects that have just been copied.
184   template <class T> void do_oop_evac(T* p);
185 
186   void dispatch_task(ScannerTask task);
187 
188   // Tries to allocate word_sz in the PLAB of the next "generation" after trying to
189   // allocate into dest. Previous_plab_refill_failed indicates whether previous
190   // PLAB refill for the original (source) object failed.
191   // Returns a non-NULL pointer if successful, and updates dest if required.
192   // Also determines whether we should continue to try to allocate into the various
193   // generations or just end trying to allocate.
194   HeapWord* allocate_in_next_plab(G1HeapRegionAttr* dest,
195                                   size_t word_sz,
196                                   bool previous_plab_refill_failed,
197                                   uint node_index);
198 
199   inline G1HeapRegionAttr next_region_attr(G1HeapRegionAttr const region_attr, markWord const m, uint& age);
200 
201   void report_promotion_event(G1HeapRegionAttr const dest_attr,
202                               oop const old, size_t word_sz, uint age,
203                               HeapWord * const obj_ptr, uint node_index) const;
204 
205   void trim_queue_to_threshold(uint threshold);
206 
207   inline bool needs_partial_trimming() const;
208 
209   // NUMA statistics related methods.
210   void initialize_numa_stats();
211   void flush_numa_stats();
212   inline void update_numa_stats(uint node_index);
213 
214 public:
215   oop copy_to_survivor_space(G1HeapRegionAttr region_attr, oop obj, markWord old_mark);
216 
217   inline void trim_queue();
218   inline void trim_queue_partially();
219   void steal_and_trim_queue(G1ScannerTasksQueueSet *task_queues);
220 
221   Tickspan trim_ticks() const;
222   void reset_trim_ticks();

150       _last_enqueued_card = card_index;
151     }
152   }
153 
154   G1EvacuationRootClosures* closures() { return _closures; }
155   uint worker_id() { return _worker_id; }
156 
157   size_t lab_waste_words() const;
158   size_t lab_undo_waste_words() const;
159 
160   // Pass locally gathered statistics to global state. Returns the total number of
161   // HeapWords copied.
162   size_t flush(size_t* surviving_young_words);
163 
164 private:
165   void do_partial_array(PartialArrayScanTask task);
166   void start_partial_objarray(G1HeapRegionAttr dest_dir, oop from, oop to);
167 
168   HeapWord* allocate_copy_slow(G1HeapRegionAttr* dest_attr,
169                                oop old,
170                                Klass* klass,
171                                size_t word_sz,
172                                uint age,
173                                uint node_index);
174 
175   void undo_allocation(G1HeapRegionAttr dest_addr,
176                        HeapWord* obj_ptr,
177                        size_t word_sz,
178                        uint node_index);
179 
180   oop do_copy_to_survivor_space(G1HeapRegionAttr region_attr,
181                                 oop obj,
182                                 markWord old_mark);
183 
184   // This method is applied to the fields of the objects that have just been copied.
185   template <class T> void do_oop_evac(T* p);
186 
187   void dispatch_task(ScannerTask task);
188 
189   // Tries to allocate word_sz in the PLAB of the next "generation" after trying to
190   // allocate into dest. Previous_plab_refill_failed indicates whether previous
191   // PLAB refill for the original (source) object failed.
192   // Returns a non-NULL pointer if successful, and updates dest if required.
193   // Also determines whether we should continue to try to allocate into the various
194   // generations or just end trying to allocate.
195   HeapWord* allocate_in_next_plab(G1HeapRegionAttr* dest,
196                                   size_t word_sz,
197                                   bool previous_plab_refill_failed,
198                                   uint node_index);
199 
200   inline G1HeapRegionAttr next_region_attr(G1HeapRegionAttr const region_attr, markWord const m, uint& age);
201 
202   void report_promotion_event(G1HeapRegionAttr const dest_attr,
203                               oop const old, Klass* klass, size_t word_sz, uint age,
204                               HeapWord * const obj_ptr, uint node_index) const;
205 
206   void trim_queue_to_threshold(uint threshold);
207 
208   inline bool needs_partial_trimming() const;
209 
210   // NUMA statistics related methods.
211   void initialize_numa_stats();
212   void flush_numa_stats();
213   inline void update_numa_stats(uint node_index);
214 
215 public:
216   oop copy_to_survivor_space(G1HeapRegionAttr region_attr, oop obj, markWord old_mark);
217 
218   inline void trim_queue();
219   inline void trim_queue_partially();
220   void steal_and_trim_queue(G1ScannerTasksQueueSet *task_queues);
221 
222   Tickspan trim_ticks() const;
223   void reset_trim_ticks();
< prev index next >