< prev index next >

src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp

Print this page
rev 49852 : imported patch 8191471-g1-retained-mutator-region


 124   size_t free() const                            { return pointer_delta(end(), top()); }
 125   // Don't discard tlab if remaining space is larger than this.
 126   size_t refill_waste_limit() const              { return _refill_waste_limit; }
 127 
 128   // Allocate size HeapWords. The memory is NOT initialized to zero.
 129   inline HeapWord* allocate(size_t size);
 130 
 131   // Reserve space at the end of TLAB
 132   static size_t end_reserve() {
 133     int reserve_size = typeArrayOopDesc::header_size(T_INT);
 134     return MAX2(reserve_size, _reserve_for_allocation_prefetch);
 135   }
 136   static size_t alignment_reserve()              { return align_object_size(end_reserve()); }
 137   static size_t alignment_reserve_in_bytes()     { return alignment_reserve() * HeapWordSize; }
 138 
 139   // Return tlab size or remaining space in eden such that the
 140   // space is large enough to hold obj_size and necessary fill space.
 141   // Otherwise return 0;
 142   inline size_t compute_size(size_t obj_size);
 143 



 144   // Record slow allocation
 145   inline void record_slow_allocation(size_t obj_size);
 146 
 147   // Initialization at startup
 148   static void startup_initialization();
 149 
 150   // Make an in-use tlab parsable, optionally retiring and/or zapping it.
 151   void make_parsable(bool retire, bool zap = true);
 152 
 153   // Retire in-use tlab before allocation of a new tlab
 154   void clear_before_allocation();
 155 
 156   // Accumulate statistics across all tlabs before gc
 157   static void accumulate_statistics_before_gc();
 158 
 159   // Resize tlabs for all threads
 160   static void resize_all_tlabs();
 161 
 162   void fill(HeapWord* start, HeapWord* top, size_t new_size);
 163   void initialize();




 124   size_t free() const                            { return pointer_delta(end(), top()); }
 125   // Don't discard tlab if remaining space is larger than this.
 126   size_t refill_waste_limit() const              { return _refill_waste_limit; }
 127 
 128   // Allocate size HeapWords. The memory is NOT initialized to zero.
 129   inline HeapWord* allocate(size_t size);
 130 
 131   // Reserve space at the end of TLAB
 132   static size_t end_reserve() {
 133     int reserve_size = typeArrayOopDesc::header_size(T_INT);
 134     return MAX2(reserve_size, _reserve_for_allocation_prefetch);
 135   }
 136   static size_t alignment_reserve()              { return align_object_size(end_reserve()); }
 137   static size_t alignment_reserve_in_bytes()     { return alignment_reserve() * HeapWordSize; }
 138 
 139   // Return tlab size or remaining space in eden such that the
 140   // space is large enough to hold obj_size and necessary fill space.
 141   // Otherwise return 0;
 142   inline size_t compute_size(size_t obj_size);
 143 
 144   // Compute the minimal needed tlab size for the given object size.
 145   static inline size_t compute_min_size(size_t obj_size);
 146 
 147   // Record slow allocation
 148   inline void record_slow_allocation(size_t obj_size);
 149 
 150   // Initialization at startup
 151   static void startup_initialization();
 152 
 153   // Make an in-use tlab parsable, optionally retiring and/or zapping it.
 154   void make_parsable(bool retire, bool zap = true);
 155 
 156   // Retire in-use tlab before allocation of a new tlab
 157   void clear_before_allocation();
 158 
 159   // Accumulate statistics across all tlabs before gc
 160   static void accumulate_statistics_before_gc();
 161 
 162   // Resize tlabs for all threads
 163   static void resize_all_tlabs();
 164 
 165   void fill(HeapWord* start, HeapWord* top, size_t new_size);
 166   void initialize();


< prev index next >