< 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 >