< prev index next >

src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp

Print this page
rev 51152 : [mq]: gcbuildoptionspatch


  92   }
  93   HeapWord* _ptr;
  94   size_t    _word_size;
  95   size_t    _refillSize;
  96   size_t    _allocation_size_limit;  // Largest size that will be allocated
  97 
  98   void print_on(outputStream* st) const;
  99 };
 100 
 101 // Concrete subclass of CompactibleSpace that implements
 102 // a free list space, such as used in the concurrent mark sweep
 103 // generation.
 104 
 105 class CompactibleFreeListSpace: public CompactibleSpace {
 106   friend class VMStructs;
 107   friend class ConcurrentMarkSweepGeneration;
 108   friend class CMSCollector;
 109   // Local alloc buffer for promotion into this space.
 110   friend class CompactibleFreeListSpaceLAB;
 111   // Allow scan_and_* functions to call (private) overrides of the auxiliary functions on this class

 112   template <typename SpaceType>
 113   friend void CompactibleSpace::scan_and_adjust_pointers(SpaceType* space);
 114   template <typename SpaceType>
 115   friend void CompactibleSpace::scan_and_compact(SpaceType* space);
 116   template <typename SpaceType>
 117   friend void CompactibleSpace::verify_up_to_first_dead(SpaceType* space);
 118   template <typename SpaceType>
 119   friend void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* cp);

 120 
 121   // "Size" of chunks of work (executed during parallel remark phases
 122   // of CMS collection); this probably belongs in CMSCollector, although
 123   // it's cached here because it's used in
 124   // initialize_sequential_subtasks_for_rescan() which modifies
 125   // par_seq_tasks which also lives in Space. XXX
 126   const size_t _rescan_task_size;
 127   const size_t _marking_task_size;
 128 
 129   // Yet another sequential tasks done structure. This supports
 130   // CMS GC, where we have threads dynamically
 131   // claiming sub-tasks from a larger parallel task.
 132   SequentialSubTasksDone _conc_par_seq_tasks;
 133 
 134   BlockOffsetArrayNonContigSpace _bt;
 135 
 136   CMSCollector* _collector;
 137   ConcurrentMarkSweepGeneration* _old_gen;
 138 
 139   // Data structures for free blocks (used during allocation/sweeping)




  92   }
  93   HeapWord* _ptr;
  94   size_t    _word_size;
  95   size_t    _refillSize;
  96   size_t    _allocation_size_limit;  // Largest size that will be allocated
  97 
  98   void print_on(outputStream* st) const;
  99 };
 100 
 101 // Concrete subclass of CompactibleSpace that implements
 102 // a free list space, such as used in the concurrent mark sweep
 103 // generation.
 104 
 105 class CompactibleFreeListSpace: public CompactibleSpace {
 106   friend class VMStructs;
 107   friend class ConcurrentMarkSweepGeneration;
 108   friend class CMSCollector;
 109   // Local alloc buffer for promotion into this space.
 110   friend class CompactibleFreeListSpaceLAB;
 111   // Allow scan_and_* functions to call (private) overrides of the auxiliary functions on this class
 112 #if INCLUDE_SERIALGC
 113   template <typename SpaceType>
 114   friend void CompactibleSpace::scan_and_adjust_pointers(SpaceType* space);
 115   template <typename SpaceType>
 116   friend void CompactibleSpace::scan_and_compact(SpaceType* space);
 117   template <typename SpaceType>
 118   friend void CompactibleSpace::verify_up_to_first_dead(SpaceType* space);
 119   template <typename SpaceType>
 120   friend void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* cp);
 121 #endif
 122 
 123   // "Size" of chunks of work (executed during parallel remark phases
 124   // of CMS collection); this probably belongs in CMSCollector, although
 125   // it's cached here because it's used in
 126   // initialize_sequential_subtasks_for_rescan() which modifies
 127   // par_seq_tasks which also lives in Space. XXX
 128   const size_t _rescan_task_size;
 129   const size_t _marking_task_size;
 130 
 131   // Yet another sequential tasks done structure. This supports
 132   // CMS GC, where we have threads dynamically
 133   // claiming sub-tasks from a larger parallel task.
 134   SequentialSubTasksDone _conc_par_seq_tasks;
 135 
 136   BlockOffsetArrayNonContigSpace _bt;
 137 
 138   CMSCollector* _collector;
 139   ConcurrentMarkSweepGeneration* _old_gen;
 140 
 141   // Data structures for free blocks (used during allocation/sweeping)


< prev index next >