< prev index next >
src/hotspot/share/gc/g1/g1Allocator.hpp
Print this page
rev 56448 : imported patch 8220310.mut.0
rev 56449 : imported patch 8220310.mut.1_thomas
rev 56452 : imported patch 8220310.mut.2-stefan
rev 56453 : imported patch 8220310.mut.2-kim
*** 42,53 ****
G1CollectedHeap* _g1h;
bool _survivor_is_full;
bool _old_is_full;
// Alloc region used to satisfy mutator allocation requests.
! MutatorAllocRegion _mutator_alloc_region;
// Alloc region used to satisfy allocation requests by the GC for
// survivor objects.
SurvivorGCAllocRegion _survivor_gc_alloc_region;
--- 42,56 ----
G1CollectedHeap* _g1h;
bool _survivor_is_full;
bool _old_is_full;
+ // The number of MutatorAllocRegions used, one per memory node.
+ size_t _num_alloc_regions;
+
// Alloc region used to satisfy mutator allocation requests.
! MutatorAllocRegion* _mutator_alloc_regions;
// Alloc region used to satisfy allocation requests by the GC for
// survivor objects.
SurvivorGCAllocRegion _survivor_gc_alloc_region;
*** 66,76 ****
void reuse_retained_old_region(G1EvacuationInfo& evacuation_info,
OldGCAllocRegion* old,
HeapRegion** retained);
// Accessors to the allocation regions.
! inline MutatorAllocRegion* mutator_alloc_region();
inline SurvivorGCAllocRegion* survivor_gc_alloc_region();
inline OldGCAllocRegion* old_gc_alloc_region();
// Allocation attempt during GC for a survivor object / PLAB.
HeapWord* survivor_attempt_allocation(size_t min_word_size,
--- 69,79 ----
void reuse_retained_old_region(G1EvacuationInfo& evacuation_info,
OldGCAllocRegion* old,
HeapRegion** retained);
// Accessors to the allocation regions.
! inline MutatorAllocRegion* mutator_alloc_region(uint node_index);
inline SurvivorGCAllocRegion* survivor_gc_alloc_region();
inline OldGCAllocRegion* old_gc_alloc_region();
// Allocation attempt during GC for a survivor object / PLAB.
HeapWord* survivor_attempt_allocation(size_t min_word_size,
*** 79,98 ****
// Allocation attempt during GC for an old object / PLAB.
HeapWord* old_attempt_allocation(size_t min_word_size,
size_t desired_word_size,
size_t* actual_word_size);
public:
G1Allocator(G1CollectedHeap* heap);
#ifdef ASSERT
// Do we currently have an active mutator region to allocate into?
! bool has_mutator_alloc_region() { return mutator_alloc_region()->get() != NULL; }
#endif
! void init_mutator_alloc_region();
! void release_mutator_alloc_region();
void init_gc_alloc_regions(G1EvacuationInfo& evacuation_info);
void release_gc_alloc_regions(G1EvacuationInfo& evacuation_info);
void abandon_gc_alloc_regions();
bool is_retained_old_region(HeapRegion* hr);
--- 82,106 ----
// Allocation attempt during GC for an old object / PLAB.
HeapWord* old_attempt_allocation(size_t min_word_size,
size_t desired_word_size,
size_t* actual_word_size);
+
+ // Node index of current thread.
+ inline uint current_node_index() const;
+
public:
G1Allocator(G1CollectedHeap* heap);
+ ~G1Allocator();
#ifdef ASSERT
// Do we currently have an active mutator region to allocate into?
! bool has_mutator_alloc_region();
#endif
! void init_mutator_alloc_regions();
! void release_mutator_alloc_regions();
void init_gc_alloc_regions(G1EvacuationInfo& evacuation_info);
void release_gc_alloc_regions(G1EvacuationInfo& evacuation_info);
void abandon_gc_alloc_regions();
bool is_retained_old_region(HeapRegion* hr);
< prev index next >