src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
Print this page
*** 514,523 ****
--- 514,525 ----
class CMSCollector: public CHeapObj<mtGC> {
friend class VMStructs;
friend class ConcurrentMarkSweepThread;
friend class ConcurrentMarkSweepGeneration;
friend class CompactibleFreeListSpace;
+ friend class CMSParMarkTask;
+ friend class CMSParInitialMarkTask;
friend class CMSParRemarkTask;
friend class CMSConcMarkingTask;
friend class CMSRefProcTaskProxy;
friend class CMSRefProcTaskExecutor;
friend class ScanMarkedObjectsAgainCarefullyClosure; // for sampling eden
*** 750,759 ****
--- 752,762 ----
private:
// Support for parallelizing young gen rescan in CMS remark phase
Generation* _young_gen; // the younger gen
HeapWord** _top_addr; // ... Top of Eden
HeapWord** _end_addr; // ... End of Eden
+ Mutex* _eden_chunk_lock;
HeapWord** _eden_chunk_array; // ... Eden partitioning array
size_t _eden_chunk_index; // ... top (exclusive) of array
size_t _eden_chunk_capacity; // ... max entries in array
// Support for parallelizing survivor space rescan
*** 951,960 ****
--- 954,964 ----
}
}
// Support for parallel remark of survivor space
void* get_data_recorder(int thr_num);
+ void sample_eden_chunk();
CMSBitMap* markBitMap() { return &_markBitMap; }
void directAllocated(HeapWord* start, size_t size);
// main CMS steps and related support
*** 1029,1038 ****
--- 1033,1044 ----
// Get the bit map with a perm gen "deadness" information.
CMSBitMap* perm_gen_verify_bit_map() { return &_perm_gen_verify_bit_map; }
// Initialization errors
bool completed_initialization() { return _completed_initialization; }
+
+ void print_eden_and_survivor_chunk_arrays();
};
class CMSExpansionCause : public AllStatic {
public:
enum Cause {
*** 1315,1324 ****
--- 1321,1334 ----
// Support for parallel remark of survivor space
void* get_data_recorder(int thr_num) {
//Delegate to collector
return collector()->get_data_recorder(thr_num);
}
+ void sample_eden_chunk() {
+ //Delegate to collector
+ return collector()->sample_eden_chunk();
+ }
// Printing
const char* name() const;
virtual const char* short_name() const { return "CMS"; }
void print() const;