< prev index next >
src/share/vm/gc/g1/g1CollectedHeap.hpp
Print this page
rev 11593 : imported patch 8034842-par-free-cset-old
rev 11595 : imported patch 8034842-erikh-jmasa-review
@@ -116,10 +116,11 @@
public:
virtual void on_commit(uint start_idx, size_t num_regions, bool zero_filled);
};
class G1CollectedHeap : public CollectedHeap {
+ friend class G1FreeCollectionSetTask;
friend class VM_CollectForMetadataAllocation;
friend class VM_G1CollectForAllocation;
friend class VM_G1CollectFull;
friend class VM_G1IncCollectionPause;
friend class VMStructs;
@@ -640,17 +641,19 @@
// Frees a non-humongous region by initializing its contents and
// adding it to the free list that's passed as a parameter (this is
// usually a local list which will be appended to the master free
// list later). The used bytes of freed regions are accumulated in
- // pre_used. If par is true, the region's RSet will not be freed
- // up. The assumption is that this will be done later.
+ // pre_used. If skip_remset is true, the region's RSet will not be freed
+ // up. If skip_hot_card_cache is true, the region's hot card cache will not
+ // be freed up. The assumption is that this will be done later.
// The locked parameter indicates if the caller has already taken
// care of proper synchronization. This may allow some optimizations.
void free_region(HeapRegion* hr,
FreeRegionList* free_list,
- bool par,
+ bool skip_remset,
+ bool skip_hot_card_cache = false,
bool locked = false);
// It dirties the cards that cover the block so that the post
// write barrier never queues anything when updating objects on this
// block. It is assumed (and in fact we assert) that the block
@@ -660,15 +663,15 @@
// Frees a humongous region by collapsing it into individual regions
// and calling free_region() for each of them. The freed regions
// will be added to the free list that's passed as a parameter (this
// is usually a local list which will be appended to the master free
// list later). The used bytes of freed regions are accumulated in
- // pre_used. If par is true, the region's RSet will not be freed
+ // pre_used. If skip_remset is true, the region's RSet will not be freed
// up. The assumption is that this will be done later.
void free_humongous_region(HeapRegion* hr,
FreeRegionList* free_list,
- bool par);
+ bool skip_remset);
// Facility for allocating in 'archive' regions in high heap memory and
// recording the allocated ranges. These should all be called from the
// VM thread at safepoints, without the heap lock held. They can be used
// to create and archive a set of heap regions which can be mapped at the
< prev index next >