< prev index next >

src/hotspot/share/gc/g1/g1CollectedHeap.hpp

Print this page
rev 56448 : imported patch 8220310.mut.0
rev 56449 : imported patch 8220310.mut.1
rev 56450 : imported patch 8220310.mut.2
rev 56451 : imported patch 8220310.mut.3-thomas

*** 38,47 **** --- 38,48 ---- #include "gc/g1/g1GCPhaseTimes.hpp" #include "gc/g1/g1HeapTransition.hpp" #include "gc/g1/g1HeapVerifier.hpp" #include "gc/g1/g1HRPrinter.hpp" #include "gc/g1/g1HeapRegionAttr.hpp" + #include "gc/g1/g1MemoryNodeManager.hpp" #include "gc/g1/g1MonitoringSupport.hpp" #include "gc/g1/g1RedirtyCardsQueue.hpp" #include "gc/g1/g1SurvivorRegions.hpp" #include "gc/g1/g1YCTypes.hpp" #include "gc/g1/heapRegionManager.hpp"
*** 190,199 **** --- 191,203 ---- void rebuild_region_sets(bool free_list_only); // Callback for region mapping changed events. G1RegionMappingChangedListener _listener; + // Manages single or multi node memory. + G1MemoryNodeManager* _mem_node_mgr; + // The sequence of all heap regions in the heap. HeapRegionManager* _hrm; // Manages all allocations with regions except humongous object allocations. G1Allocator* _allocator;
*** 386,396 **** // Try to allocate a single non-humongous HeapRegion sufficient for // an allocation of the given word_size. If do_expand is true, // attempt to expand the heap if necessary to satisfy the allocation // request. 'type' takes the type of region to be allocated. (Use constants // Old, Eden, Humongous, Survivor defined in HeapRegionType.) ! HeapRegion* new_region(size_t word_size, HeapRegionType type, bool do_expand); // Initialize a contiguous set of free regions of length num_regions // and starting at index first so that they appear as a single // humongous region. HeapWord* humongous_obj_allocate_initialize_regions(uint first, --- 390,403 ---- // Try to allocate a single non-humongous HeapRegion sufficient for // an allocation of the given word_size. If do_expand is true, // attempt to expand the heap if necessary to satisfy the allocation // request. 'type' takes the type of region to be allocated. (Use constants // Old, Eden, Humongous, Survivor defined in HeapRegionType.) ! HeapRegion* new_region(size_t word_size, ! HeapRegionType type, ! bool do_expand, ! uint node_index = G1MemoryNodeManager::AnyNodeIndex); // Initialize a contiguous set of free regions of length num_regions // and starting at index first so that they appear as a single // humongous region. HeapWord* humongous_obj_allocate_initialize_regions(uint first,
*** 461,471 **** bool expect_null_mutator_alloc_region); // These methods are the "callbacks" from the G1AllocRegion class. // For mutator alloc regions. ! HeapRegion* new_mutator_alloc_region(size_t word_size, bool force); void retire_mutator_alloc_region(HeapRegion* alloc_region, size_t allocated_bytes); // For GC alloc regions. bool has_more_regions(G1HeapRegionAttr dest); --- 468,478 ---- bool expect_null_mutator_alloc_region); // These methods are the "callbacks" from the G1AllocRegion class. // For mutator alloc regions. ! HeapRegion* new_mutator_alloc_region(size_t word_size, bool force, uint node_index); void retire_mutator_alloc_region(HeapRegion* alloc_region, size_t allocated_bytes); // For GC alloc regions. bool has_more_regions(G1HeapRegionAttr dest);
*** 546,560 **** --- 553,570 ---- return _g1mm; } void resize_heap_if_necessary(); + G1MemoryNodeManager* mem_node_mgr() const { return _mem_node_mgr; } + // Expand the garbage-first heap by at least the given size (in bytes!). // Returns true if the heap was expanded by the requested amount; // false otherwise. // (Rounds up to a HeapRegion boundary.) bool expand(size_t expand_bytes, WorkGang* pretouch_workers = NULL, double* expand_time_ms = NULL); + bool expand_single_region(uint node_index); // Returns the PLAB statistics for a given destination. inline G1EvacStats* alloc_buffer_stats(G1HeapRegionAttr dest); // Determines PLAB size for a given destination.
< prev index next >