193 bool is_move_allowed() const { return is_regular() || _state == _cset || (ShenandoahHumongousMoves && _state == _humongous_start); }
194
195 RegionState state() const { return _state; }
196 int state_ordinal() const { return region_state_to_ordinal(_state); }
197
198 private:
199 static size_t RegionCount;
200 static size_t RegionSizeBytes;
201 static size_t RegionSizeWords;
202 static size_t RegionSizeBytesShift;
203 static size_t RegionSizeWordsShift;
204 static size_t RegionSizeBytesMask;
205 static size_t RegionSizeWordsMask;
206 static size_t HumongousThresholdBytes;
207 static size_t HumongousThresholdWords;
208 static size_t MaxTLABSizeBytes;
209 static size_t MaxTLABSizeWords;
210
211 // Never updated fields
212 ShenandoahHeap* _heap;
213 ShenandoahPacer* _pacer;
214 MemRegion _reserved;
215 size_t _region_number;
216
217 // Rarely updated fields
218 HeapWord* _new_top;
219 size_t _critical_pins;
220 double _empty_time;
221
222 // Seldom updated fields
223 RegionState _state;
224
225 // Frequently updated fields
226 size_t _tlab_allocs;
227 size_t _gclab_allocs;
228 size_t _shared_allocs;
229
230 volatile jint _live_data;
231
232 // Claim some space at the end to protect next region
233 char _pad0[DEFAULT_CACHE_LINE_SIZE];
|
193 bool is_move_allowed() const { return is_regular() || _state == _cset || (ShenandoahHumongousMoves && _state == _humongous_start); }
194
195 RegionState state() const { return _state; }
196 int state_ordinal() const { return region_state_to_ordinal(_state); }
197
198 private:
199 static size_t RegionCount;
200 static size_t RegionSizeBytes;
201 static size_t RegionSizeWords;
202 static size_t RegionSizeBytesShift;
203 static size_t RegionSizeWordsShift;
204 static size_t RegionSizeBytesMask;
205 static size_t RegionSizeWordsMask;
206 static size_t HumongousThresholdBytes;
207 static size_t HumongousThresholdWords;
208 static size_t MaxTLABSizeBytes;
209 static size_t MaxTLABSizeWords;
210
211 // Never updated fields
212 ShenandoahHeap* _heap;
213 MemRegion _reserved;
214 size_t _region_number;
215
216 // Rarely updated fields
217 HeapWord* _new_top;
218 size_t _critical_pins;
219 double _empty_time;
220
221 // Seldom updated fields
222 RegionState _state;
223
224 // Frequently updated fields
225 size_t _tlab_allocs;
226 size_t _gclab_allocs;
227 size_t _shared_allocs;
228
229 volatile jint _live_data;
230
231 // Claim some space at the end to protect next region
232 char _pad0[DEFAULT_CACHE_LINE_SIZE];
|