hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
changeset 18994 d32a17b7502c
parent 18687 5a0543c157c9
child 18996 05c86e558c94
equal deleted inserted replaced
18927:85c14b79faf3 18994:d32a17b7502c
   747  private:
   747  private:
   748   // Support for parallelizing young gen rescan in CMS remark phase
   748   // Support for parallelizing young gen rescan in CMS remark phase
   749   Generation* _young_gen;  // the younger gen
   749   Generation* _young_gen;  // the younger gen
   750   HeapWord** _top_addr;    // ... Top of Eden
   750   HeapWord** _top_addr;    // ... Top of Eden
   751   HeapWord** _end_addr;    // ... End of Eden
   751   HeapWord** _end_addr;    // ... End of Eden
       
   752   Mutex*     _eden_chunk_lock;
   752   HeapWord** _eden_chunk_array; // ... Eden partitioning array
   753   HeapWord** _eden_chunk_array; // ... Eden partitioning array
   753   size_t     _eden_chunk_index; // ... top (exclusive) of array
   754   size_t     _eden_chunk_index; // ... top (exclusive) of array
   754   size_t     _eden_chunk_capacity;  // ... max entries in array
   755   size_t     _eden_chunk_capacity;  // ... max entries in array
   755 
   756 
   756   // Support for parallelizing survivor space rescan
   757   // Support for parallelizing survivor space rescan
   948     }
   949     }
   949   }
   950   }
   950 
   951 
   951   // Support for parallel remark of survivor space
   952   // Support for parallel remark of survivor space
   952   void* get_data_recorder(int thr_num);
   953   void* get_data_recorder(int thr_num);
       
   954   void sample_eden_chunk();
   953 
   955 
   954   CMSBitMap* markBitMap()  { return &_markBitMap; }
   956   CMSBitMap* markBitMap()  { return &_markBitMap; }
   955   void directAllocated(HeapWord* start, size_t size);
   957   void directAllocated(HeapWord* start, size_t size);
   956 
   958 
   957   // main CMS steps and related support
   959   // main CMS steps and related support
  1025   CMSMarkStack* verification_mark_stack() { return &_markStack; }
  1027   CMSMarkStack* verification_mark_stack() { return &_markStack; }
  1026   CMSBitMap*    verification_mark_bm()    { return &_verification_mark_bm; }
  1028   CMSBitMap*    verification_mark_bm()    { return &_verification_mark_bm; }
  1027 
  1029 
  1028   // Initialization errors
  1030   // Initialization errors
  1029   bool completed_initialization() { return _completed_initialization; }
  1031   bool completed_initialization() { return _completed_initialization; }
       
  1032 
       
  1033   void print_eden_and_survivor_chunk_arrays();
  1030 };
  1034 };
  1031 
  1035 
  1032 class CMSExpansionCause : public AllStatic  {
  1036 class CMSExpansionCause : public AllStatic  {
  1033  public:
  1037  public:
  1034   enum Cause {
  1038   enum Cause {
  1314 
  1318 
  1315   // Support for parallel remark of survivor space
  1319   // Support for parallel remark of survivor space
  1316   void* get_data_recorder(int thr_num) {
  1320   void* get_data_recorder(int thr_num) {
  1317     //Delegate to collector
  1321     //Delegate to collector
  1318     return collector()->get_data_recorder(thr_num);
  1322     return collector()->get_data_recorder(thr_num);
       
  1323   }
       
  1324   void sample_eden_chunk() {
       
  1325     //Delegate to collector
       
  1326     return collector()->sample_eden_chunk();
  1319   }
  1327   }
  1320 
  1328 
  1321   // Printing
  1329   // Printing
  1322   const char* name() const;
  1330   const char* name() const;
  1323   virtual const char* short_name() const { return "CMS"; }
  1331   virtual const char* short_name() const { return "CMS"; }