< prev index next >

src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp

Print this page




 673   // The space that this buffer allocates into.
 674   CompactibleFreeListSpace* _cfls;
 675 
 676   // Our local free lists.
 677   AdaptiveFreeList<FreeChunk> _indexedFreeList[CompactibleFreeListSpace::IndexSetSize];
 678 
 679   // Initialized from a command-line arg.
 680 
 681   // Allocation statistics in support of dynamic adjustment of
 682   // #blocks to claim per get_from_global_pool() call below.
 683   static AdaptiveWeightedAverage
 684                  _blocks_to_claim  [CompactibleFreeListSpace::IndexSetSize];
 685   static size_t _global_num_blocks [CompactibleFreeListSpace::IndexSetSize];
 686   static uint   _global_num_workers[CompactibleFreeListSpace::IndexSetSize];
 687   size_t        _num_blocks        [CompactibleFreeListSpace::IndexSetSize];
 688 
 689   // Internal work method
 690   void get_from_global_pool(size_t word_sz, AdaptiveFreeList<FreeChunk>* fl);
 691 
 692 public:



 693   CFLS_LAB(CompactibleFreeListSpace* cfls);
 694 
 695   // Allocate and return a block of the given size, or else return NULL.
 696   HeapWord* alloc(size_t word_sz);
 697 
 698   // Return any unused portions of the buffer to the global pool.
 699   void retire(int tid);
 700 
 701   // Dynamic OldPLABSize sizing
 702   static void compute_desired_plab_size();
 703   // When the settings are modified from default static initialization
 704   static void modify_initialization(size_t n, unsigned wt);
 705 };
 706 
 707 size_t PromotionInfo::refillSize() const {
 708   const size_t CMSSpoolBlockSize = 256;
 709   const size_t sz = heap_word_size(sizeof(SpoolBlock) + sizeof(markOop)
 710                                    * CMSSpoolBlockSize);
 711   return CompactibleFreeListSpace::adjustObjectSize(sz);
 712 }


 673   // The space that this buffer allocates into.
 674   CompactibleFreeListSpace* _cfls;
 675 
 676   // Our local free lists.
 677   AdaptiveFreeList<FreeChunk> _indexedFreeList[CompactibleFreeListSpace::IndexSetSize];
 678 
 679   // Initialized from a command-line arg.
 680 
 681   // Allocation statistics in support of dynamic adjustment of
 682   // #blocks to claim per get_from_global_pool() call below.
 683   static AdaptiveWeightedAverage
 684                  _blocks_to_claim  [CompactibleFreeListSpace::IndexSetSize];
 685   static size_t _global_num_blocks [CompactibleFreeListSpace::IndexSetSize];
 686   static uint   _global_num_workers[CompactibleFreeListSpace::IndexSetSize];
 687   size_t        _num_blocks        [CompactibleFreeListSpace::IndexSetSize];
 688 
 689   // Internal work method
 690   void get_from_global_pool(size_t word_sz, AdaptiveFreeList<FreeChunk>* fl);
 691 
 692 public:
 693   static const int _default_dynamic_old_plab_size = 16;
 694   static const int _default_static_old_plab_size  = 50;
 695   
 696   CFLS_LAB(CompactibleFreeListSpace* cfls);
 697 
 698   // Allocate and return a block of the given size, or else return NULL.
 699   HeapWord* alloc(size_t word_sz);
 700 
 701   // Return any unused portions of the buffer to the global pool.
 702   void retire(int tid);
 703 
 704   // Dynamic OldPLABSize sizing
 705   static void compute_desired_plab_size();
 706   // When the settings are modified from default static initialization
 707   static void modify_initialization(size_t n, unsigned wt);
 708 };
 709 
 710 size_t PromotionInfo::refillSize() const {
 711   const size_t CMSSpoolBlockSize = 256;
 712   const size_t sz = heap_word_size(sizeof(SpoolBlock) + sizeof(markOop)
 713                                    * CMSSpoolBlockSize);
 714   return CompactibleFreeListSpace::adjustObjectSize(sz);
 715 }
< prev index next >