comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @ 17755:96b1c2e06e25

8027295: Free CSet takes ~50% of young pause time Summary: Improve fast card cache iteration and avoid taking locks when freeing the collection set. Reviewed-by: brutisso
author tschatzl
date Mon, 24 Mar 2014 15:30:36 +0100
parents 191174b49bec
children a07bea31ef35
comparison
equal deleted inserted replaced
17754:d7070f371770 17755:96b1c2e06e25
761 // adding it to the free list that's passed as a parameter (this is 761 // adding it to the free list that's passed as a parameter (this is
762 // usually a local list which will be appended to the master free 762 // usually a local list which will be appended to the master free
763 // list later). The used bytes of freed regions are accumulated in 763 // list later). The used bytes of freed regions are accumulated in
764 // pre_used. If par is true, the region's RSet will not be freed 764 // pre_used. If par is true, the region's RSet will not be freed
765 // up. The assumption is that this will be done later. 765 // up. The assumption is that this will be done later.
766 // The locked parameter indicates if the caller has already taken
767 // care of proper synchronization. This may allow some optimizations.
766 void free_region(HeapRegion* hr, 768 void free_region(HeapRegion* hr,
767 FreeRegionList* free_list, 769 FreeRegionList* free_list,
768 bool par); 770 bool par,
771 bool locked = false);
769 772
770 // Frees a humongous region by collapsing it into individual regions 773 // Frees a humongous region by collapsing it into individual regions
771 // and calling free_region() for each of them. The freed regions 774 // and calling free_region() for each of them. The freed regions
772 // will be added to the free list that's passed as a parameter (this 775 // will be added to the free list that's passed as a parameter (this
773 // is usually a local list which will be appended to the master free 776 // is usually a local list which will be appended to the master free