573 bool expand(size_t expand_bytes, WorkGang* pretouch_workers = NULL, double* expand_time_ms = NULL);
574 bool expand_single_region(uint node_index);
575
576 // Returns the PLAB statistics for a given destination.
577 inline G1EvacStats* alloc_buffer_stats(G1HeapRegionAttr dest);
578
579 // Determines PLAB size for a given destination.
580 inline size_t desired_plab_sz(G1HeapRegionAttr dest);
581
582 // Do anything common to GC's.
583 void gc_prologue(bool full);
584 void gc_epilogue(bool full);
585
586 // Does the given region fulfill remembered set based eager reclaim candidate requirements?
587 bool is_potential_eager_reclaim_candidate(HeapRegion* r) const;
588
589 // Modify the reclaim candidate set and test for presence.
590 // These are only valid for starts_humongous regions.
591 inline void set_humongous_reclaim_candidate(uint region, bool value);
592 inline bool is_humongous_reclaim_candidate(uint region);
593
594 // Remove from the reclaim candidate set. Also remove from the
595 // collection set so that later encounters avoid the slow path.
596 inline void set_humongous_is_live(oop obj);
597
598 // Register the given region to be part of the collection set.
599 inline void register_humongous_region_with_region_attr(uint index);
600 // Update region attributes table with information about all regions.
601 void register_regions_with_region_attr();
602 // We register a region with the fast "in collection set" test. We
603 // simply set to true the array slot corresponding to this region.
604 void register_young_region_with_region_attr(HeapRegion* r) {
605 _region_attr.set_in_young(r->hrm_index());
606 }
607 inline void register_region_with_region_attr(HeapRegion* r);
608 inline void register_old_region_with_region_attr(HeapRegion* r);
609 inline void register_optional_region_with_region_attr(HeapRegion* r);
610
611 void clear_region_attr(const HeapRegion* hr) {
612 _region_attr.clear(hr);
613 }
614
615 void clear_region_attr() {
616 _region_attr.clear();
617 }
618
619 // Verify that the G1RegionAttr remset tracking corresponds to actual remset tracking
620 // for all regions.
621 void verify_region_attr_remset_update() PRODUCT_RETURN;
|
573 bool expand(size_t expand_bytes, WorkGang* pretouch_workers = NULL, double* expand_time_ms = NULL);
574 bool expand_single_region(uint node_index);
575
576 // Returns the PLAB statistics for a given destination.
577 inline G1EvacStats* alloc_buffer_stats(G1HeapRegionAttr dest);
578
579 // Determines PLAB size for a given destination.
580 inline size_t desired_plab_sz(G1HeapRegionAttr dest);
581
582 // Do anything common to GC's.
583 void gc_prologue(bool full);
584 void gc_epilogue(bool full);
585
586 // Does the given region fulfill remembered set based eager reclaim candidate requirements?
587 bool is_potential_eager_reclaim_candidate(HeapRegion* r) const;
588
589 // Modify the reclaim candidate set and test for presence.
590 // These are only valid for starts_humongous regions.
591 inline void set_humongous_reclaim_candidate(uint region, bool value);
592 inline bool is_humongous_reclaim_candidate(uint region);
593 inline void set_has_humongous_reclaim_candidate(bool value);
594
595 // Remove from the reclaim candidate set. Also remove from the
596 // collection set so that later encounters avoid the slow path.
597 inline void set_humongous_is_live(oop obj);
598
599 // Register the given region to be part of the collection set.
600 inline void register_humongous_region_with_region_attr(uint index);
601
602 // We register a region with the fast "in collection set" test. We
603 // simply set to true the array slot corresponding to this region.
604 void register_young_region_with_region_attr(HeapRegion* r) {
605 _region_attr.set_in_young(r->hrm_index());
606 }
607 inline void register_region_with_region_attr(HeapRegion* r);
608 inline void register_old_region_with_region_attr(HeapRegion* r);
609 inline void register_optional_region_with_region_attr(HeapRegion* r);
610
611 void clear_region_attr(const HeapRegion* hr) {
612 _region_attr.clear(hr);
613 }
614
615 void clear_region_attr() {
616 _region_attr.clear();
617 }
618
619 // Verify that the G1RegionAttr remset tracking corresponds to actual remset tracking
620 // for all regions.
621 void verify_region_attr_remset_update() PRODUCT_RETURN;
|