comparison src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp @ 1571:2d127394260e

6916623: Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb Summary: Added new product ObjectAlignmentInBytes flag to control object alignment. Reviewed-by: twisti, ysr, iveresov
author kvn
date Thu, 27 May 2010 18:01:56 -0700
parents a8127dc669ba
children e9ff18c4ace7
comparison
equal deleted inserted replaced
1570:de91a2f25c7e 1571:2d127394260e
89 // by the containing generation. Thus, none of the methods in this 89 // by the containing generation. Thus, none of the methods in this
90 // space are re-entrant. 90 // space are re-entrant.
91 enum SomeConstants { 91 enum SomeConstants {
92 SmallForLinearAlloc = 16, // size < this then use _sLAB 92 SmallForLinearAlloc = 16, // size < this then use _sLAB
93 SmallForDictionary = 257, // size < this then use _indexedFreeList 93 SmallForDictionary = 257, // size < this then use _indexedFreeList
94 IndexSetSize = SmallForDictionary, // keep this odd-sized 94 IndexSetSize = SmallForDictionary // keep this odd-sized
95 IndexSetStart = MinObjAlignment,
96 IndexSetStride = MinObjAlignment
97 }; 95 };
96 static int IndexSetStart;
97 static int IndexSetStride;
98 98
99 private: 99 private:
100 enum FitStrategyOptions { 100 enum FitStrategyOptions {
101 FreeBlockStrategyNone = 0, 101 FreeBlockStrategyNone = 0,
102 FreeBlockBestFitFirst 102 FreeBlockBestFitFirst
276 bool bestFitFirst() { return _fitStrategy == FreeBlockBestFitFirst; } 276 bool bestFitFirst() { return _fitStrategy == FreeBlockBestFitFirst; }
277 FreeBlockDictionary* dictionary() const { return _dictionary; } 277 FreeBlockDictionary* dictionary() const { return _dictionary; }
278 HeapWord* nearLargestChunk() const { return _nearLargestChunk; } 278 HeapWord* nearLargestChunk() const { return _nearLargestChunk; }
279 void set_nearLargestChunk(HeapWord* v) { _nearLargestChunk = v; } 279 void set_nearLargestChunk(HeapWord* v) { _nearLargestChunk = v; }
280 280
281 // Set CMS global values
282 static void set_cms_values();
283
281 // Return the free chunk at the end of the space. If no such 284 // Return the free chunk at the end of the space. If no such
282 // chunk exists, return NULL. 285 // chunk exists, return NULL.
283 FreeChunk* find_chunk_at_end(); 286 FreeChunk* find_chunk_at_end();
284 287
285 bool adaptive_freelists() const { return _adaptive_freelists; } 288 bool adaptive_freelists() const { return _adaptive_freelists; }