71 72 virtual SoftRefPolicy* soft_ref_policy() { 73 return &_soft_ref_policy; 74 } 75 76 virtual jint initialize(); 77 virtual void post_initialize(); 78 virtual void initialize_serviceability(); 79 80 virtual GrowableArray<GCMemoryManager*> memory_managers(); 81 virtual GrowableArray<MemoryPool*> memory_pools(); 82 83 virtual size_t max_capacity() const { return _virtual_space.reserved_size(); } 84 virtual size_t capacity() const { return _virtual_space.committed_size(); } 85 virtual size_t used() const { return _space->used(); } 86 87 virtual bool is_in(const void* p) const { 88 return _space->is_in(p); 89 } 90 91 virtual bool is_scavengable(oop obj) { 92 // No GC is going to happen, therefore no objects ever move. 93 return false; 94 } 95 96 virtual bool is_maximal_no_gc() const { 97 // No GC is going to happen. Return "we are at max", when we are about to fail. 98 return used() == capacity(); 99 } 100 101 // Allocation 102 HeapWord* allocate_work(size_t size); 103 virtual HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded); 104 virtual HeapWord* allocate_new_tlab(size_t min_size, 105 size_t requested_size, 106 size_t* actual_size); 107 108 // TLAB allocation 109 virtual bool supports_tlab_allocation() const { return true; } 110 virtual size_t tlab_capacity(Thread* thr) const { return capacity(); } 111 virtual size_t tlab_used(Thread* thr) const { return used(); } 112 virtual size_t max_tlab_size() const { return _max_tlab_size; } 113 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const; 114 115 virtual void collect(GCCause::Cause cause); | 71 72 virtual SoftRefPolicy* soft_ref_policy() { 73 return &_soft_ref_policy; 74 } 75 76 virtual jint initialize(); 77 virtual void post_initialize(); 78 virtual void initialize_serviceability(); 79 80 virtual GrowableArray<GCMemoryManager*> memory_managers(); 81 virtual GrowableArray<MemoryPool*> memory_pools(); 82 83 virtual size_t max_capacity() const { return _virtual_space.reserved_size(); } 84 virtual size_t capacity() const { return _virtual_space.committed_size(); } 85 virtual size_t used() const { return _space->used(); } 86 87 virtual bool is_in(const void* p) const { 88 return _space->is_in(p); 89 } 90 91 virtual bool is_maximal_no_gc() const { 92 // No GC is going to happen. Return "we are at max", when we are about to fail. 93 return used() == capacity(); 94 } 95 96 // Allocation 97 HeapWord* allocate_work(size_t size); 98 virtual HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded); 99 virtual HeapWord* allocate_new_tlab(size_t min_size, 100 size_t requested_size, 101 size_t* actual_size); 102 103 // TLAB allocation 104 virtual bool supports_tlab_allocation() const { return true; } 105 virtual size_t tlab_capacity(Thread* thr) const { return capacity(); } 106 virtual size_t tlab_used(Thread* thr) const { return used(); } 107 virtual size_t max_tlab_size() const { return _max_tlab_size; } 108 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const; 109 110 virtual void collect(GCCause::Cause cause); |