6990419: CMS Remaining work for 6572569: consistently skewed work distribution in (long) re-mark pauses

Reviewed-by: rasbold, tschatzl, jmasa
This commit is contained in:
Hiroshi Yamauchi 2013-07-23 09:49:11 -07:00 committed by Jon Masamitsu
parent 0c344951cc
commit 5c9dbad612
5 changed files with 101 additions and 4 deletions

View file

@ -749,6 +749,7 @@ class CMSCollector: public CHeapObj<mtGC> {
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
@ -950,6 +951,7 @@ class CMSCollector: public CHeapObj<mtGC> {
// 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);
@ -1027,6 +1029,8 @@ class CMSCollector: public CHeapObj<mtGC> {
// Initialization errors
bool completed_initialization() { return _completed_initialization; }
void print_eden_and_survivor_chunk_arrays();
};
class CMSExpansionCause : public AllStatic {
@ -1317,6 +1321,10 @@ class ConcurrentMarkSweepGeneration: public CardGeneration {
//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;