comparison src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp @ 10372:e72f7eecc96d

8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen Summary: Fixed the output of G1SummarizeRSetStats: too small datatype for the number of concurrently processed cards, added concurrent remembered set thread time retrieval for Linux and Windows (BSD uses os::elapsedTime() now), and other cleanup. The information presented during VM operation is now relative to the previous output, not always cumulative if G1SummarizeRSetStatsPeriod > 0. At VM exit, the code prints a cumulative summary. Reviewed-by: johnc, jwilhelm
author tschatzl
date Tue, 28 May 2013 09:32:06 +0200
parents 194f52aa2f23
children 1de8e5356754
comparison
equal deleted inserted replaced
10371:c20186fa611b 10372:e72f7eecc96d
112 tc->do_thread(_threads[i]); 112 tc->do_thread(_threads[i]);
113 } 113 }
114 } 114 }
115 } 115 }
116 116
117 void ConcurrentG1Refine::worker_threads_do(ThreadClosure * tc) {
118 if (_threads != NULL) {
119 for (int i = 0; i < worker_thread_num(); i++) {
120 tc->do_thread(_threads[i]);
121 }
122 }
123 }
124
117 int ConcurrentG1Refine::thread_num() { 125 int ConcurrentG1Refine::thread_num() {
118 int n_threads = (G1ConcRefinementThreads > 0) ? G1ConcRefinementThreads 126 int n_threads = (G1ConcRefinementThreads > 0) ? G1ConcRefinementThreads
119 : ParallelGCThreads; 127 : ParallelGCThreads;
120 return MAX2<int>(n_threads, 1); 128 return MAX2<int>(n_threads, 1);
121 } 129 }
124 for (int i = 0; i < _n_threads; ++i) { 132 for (int i = 0; i < _n_threads; ++i) {
125 _threads[i]->print_on(st); 133 _threads[i]->print_on(st);
126 st->cr(); 134 st->cr();
127 } 135 }
128 } 136 }
137
138 ConcurrentG1RefineThread * ConcurrentG1Refine::sampling_thread() const {
139 return _threads[worker_thread_num()];
140 }