259 PLABStats _old_plab_stats;
260
261 // It specifies whether we should attempt to expand the heap after a
262 // region allocation failure. If heap expansion fails we set this to
263 // false so that we don't re-attempt the heap expansion (it's likely
264 // that subsequent expansion attempts will also fail if one fails).
265 // Currently, it is only consulted during GC and it's reset at the
266 // start of each GC.
267 bool _expand_heap_after_alloc_failure;
268
269 // It resets the mutator alloc region before new allocations can take place.
270 void init_mutator_alloc_region();
271
272 // It releases the mutator alloc region.
273 void release_mutator_alloc_region();
274
275 // It initializes the GC alloc regions at the start of a GC.
276 void init_gc_alloc_regions(EvacuationInfo& evacuation_info);
277
278 // It releases the GC alloc regions at the end of a GC.
279 void release_gc_alloc_regions(uint no_of_gc_workers, EvacuationInfo& evacuation_info);
280
281 // It does any cleanup that needs to be done on the GC alloc regions
282 // before a Full GC.
283 void abandon_gc_alloc_regions();
284
285 // Helper for monitoring and management support.
286 G1MonitoringSupport* _g1mm;
287
288 // Records whether the region at the given index is (still) a
289 // candidate for eager reclaim. Only valid for humongous start
290 // regions; other regions have unspecified values. Humongous start
291 // regions are initialized at start of collection pause, with
292 // candidates removed from the set as they are found reachable from
293 // roots or the young generation.
294 class HumongousReclaimCandidates : public G1BiasedMappedArray<bool> {
295 protected:
296 bool default_value() const { return false; }
297 public:
298 void clear() { G1BiasedMappedArray<bool>::clear(); }
299 void set_candidate(uint region, bool value) {
|
259 PLABStats _old_plab_stats;
260
261 // It specifies whether we should attempt to expand the heap after a
262 // region allocation failure. If heap expansion fails we set this to
263 // false so that we don't re-attempt the heap expansion (it's likely
264 // that subsequent expansion attempts will also fail if one fails).
265 // Currently, it is only consulted during GC and it's reset at the
266 // start of each GC.
267 bool _expand_heap_after_alloc_failure;
268
269 // It resets the mutator alloc region before new allocations can take place.
270 void init_mutator_alloc_region();
271
272 // It releases the mutator alloc region.
273 void release_mutator_alloc_region();
274
275 // It initializes the GC alloc regions at the start of a GC.
276 void init_gc_alloc_regions(EvacuationInfo& evacuation_info);
277
278 // It releases the GC alloc regions at the end of a GC.
279 void release_gc_alloc_regions(EvacuationInfo& evacuation_info);
280
281 // It does any cleanup that needs to be done on the GC alloc regions
282 // before a Full GC.
283 void abandon_gc_alloc_regions();
284
285 // Helper for monitoring and management support.
286 G1MonitoringSupport* _g1mm;
287
288 // Records whether the region at the given index is (still) a
289 // candidate for eager reclaim. Only valid for humongous start
290 // regions; other regions have unspecified values. Humongous start
291 // regions are initialized at start of collection pause, with
292 // candidates removed from the set as they are found reachable from
293 // roots or the young generation.
294 class HumongousReclaimCandidates : public G1BiasedMappedArray<bool> {
295 protected:
296 bool default_value() const { return false; }
297 public:
298 void clear() { G1BiasedMappedArray<bool>::clear(); }
299 void set_candidate(uint region, bool value) {
|