comparison src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp @ 20804:7848fc12602b

Merge with jdk8u40-b25
author Gilles Duboscq <gilles.m.duboscq@oracle.com>
date Tue, 07 Apr 2015 14:58:49 +0200
parents 2c6ef90f030a
children
comparison
equal deleted inserted replaced
20184:84105dcdb05b 20804:7848fc12602b
51 assert(Universe::heap()->is_gc_active(), "called outside gc"); 51 assert(Universe::heap()->is_gc_active(), "called outside gc");
52 52
53 ResourceMark rm; 53 ResourceMark rm;
54 54
55 NOT_PRODUCT(GCTraceTime tm("ThreadRootsMarkingTask", 55 NOT_PRODUCT(GCTraceTime tm("ThreadRootsMarkingTask",
56 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); 56 PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
57 ParCompactionManager* cm = 57 ParCompactionManager* cm =
58 ParCompactionManager::gc_thread_compaction_manager(which); 58 ParCompactionManager::gc_thread_compaction_manager(which);
59 59
60 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); 60 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
61 CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true); 61 CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true);
62 CodeBlobToOopClosure mark_and_push_in_blobs(&mark_and_push_closure, /*do_marking=*/ true); 62 MarkingCodeBlobClosure mark_and_push_in_blobs(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations);
63 63
64 if (_java_thread != NULL) 64 if (_java_thread != NULL)
65 _java_thread->oops_do( 65 _java_thread->oops_do(
66 &mark_and_push_closure, 66 &mark_and_push_closure,
67 &mark_and_push_from_clds, 67 &mark_and_push_from_clds,
80 80
81 void MarkFromRootsTask::do_it(GCTaskManager* manager, uint which) { 81 void MarkFromRootsTask::do_it(GCTaskManager* manager, uint which) {
82 assert(Universe::heap()->is_gc_active(), "called outside gc"); 82 assert(Universe::heap()->is_gc_active(), "called outside gc");
83 83
84 NOT_PRODUCT(GCTraceTime tm("MarkFromRootsTask", 84 NOT_PRODUCT(GCTraceTime tm("MarkFromRootsTask",
85 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); 85 PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
86 ParCompactionManager* cm = 86 ParCompactionManager* cm =
87 ParCompactionManager::gc_thread_compaction_manager(which); 87 ParCompactionManager::gc_thread_compaction_manager(which);
88 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); 88 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
89 PSParallelCompact::FollowKlassClosure follow_klass_closure(&mark_and_push_closure); 89 PSParallelCompact::FollowKlassClosure follow_klass_closure(&mark_and_push_closure);
90 90
98 break; 98 break;
99 99
100 case threads: 100 case threads:
101 { 101 {
102 ResourceMark rm; 102 ResourceMark rm;
103 CodeBlobToOopClosure each_active_code_blob(&mark_and_push_closure, /*do_marking=*/ true); 103 MarkingCodeBlobClosure each_active_code_blob(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations);
104 CLDToOopClosure mark_and_push_from_cld(&mark_and_push_closure); 104 CLDToOopClosure mark_and_push_from_cld(&mark_and_push_closure);
105 Threads::oops_do(&mark_and_push_closure, &mark_and_push_from_cld, &each_active_code_blob); 105 Threads::oops_do(&mark_and_push_closure, &mark_and_push_from_cld, &each_active_code_blob);
106 } 106 }
107 break; 107 break;
108 108
151 void RefProcTaskProxy::do_it(GCTaskManager* manager, uint which) 151 void RefProcTaskProxy::do_it(GCTaskManager* manager, uint which)
152 { 152 {
153 assert(Universe::heap()->is_gc_active(), "called outside gc"); 153 assert(Universe::heap()->is_gc_active(), "called outside gc");
154 154
155 NOT_PRODUCT(GCTraceTime tm("RefProcTask", 155 NOT_PRODUCT(GCTraceTime tm("RefProcTask",
156 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); 156 PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
157 ParCompactionManager* cm = 157 ParCompactionManager* cm =
158 ParCompactionManager::gc_thread_compaction_manager(which); 158 ParCompactionManager::gc_thread_compaction_manager(which);
159 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); 159 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
160 PSParallelCompact::FollowStackClosure follow_stack_closure(cm); 160 PSParallelCompact::FollowStackClosure follow_stack_closure(cm);
161 _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(), 161 _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(),
207 207
208 void StealMarkingTask::do_it(GCTaskManager* manager, uint which) { 208 void StealMarkingTask::do_it(GCTaskManager* manager, uint which) {
209 assert(Universe::heap()->is_gc_active(), "called outside gc"); 209 assert(Universe::heap()->is_gc_active(), "called outside gc");
210 210
211 NOT_PRODUCT(GCTraceTime tm("StealMarkingTask", 211 NOT_PRODUCT(GCTraceTime tm("StealMarkingTask",
212 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); 212 PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
213 213
214 ParCompactionManager* cm = 214 ParCompactionManager* cm =
215 ParCompactionManager::gc_thread_compaction_manager(which); 215 ParCompactionManager::gc_thread_compaction_manager(which);
216 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); 216 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
217 217
240 240
241 void StealRegionCompactionTask::do_it(GCTaskManager* manager, uint which) { 241 void StealRegionCompactionTask::do_it(GCTaskManager* manager, uint which) {
242 assert(Universe::heap()->is_gc_active(), "called outside gc"); 242 assert(Universe::heap()->is_gc_active(), "called outside gc");
243 243
244 NOT_PRODUCT(GCTraceTime tm("StealRegionCompactionTask", 244 NOT_PRODUCT(GCTraceTime tm("StealRegionCompactionTask",
245 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); 245 PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
246 246
247 ParCompactionManager* cm = 247 ParCompactionManager* cm =
248 ParCompactionManager::gc_thread_compaction_manager(which); 248 ParCompactionManager::gc_thread_compaction_manager(which);
249 249
250 250
307 _region_index_end(region_index_end) {} 307 _region_index_end(region_index_end) {}
308 308
309 void UpdateDensePrefixTask::do_it(GCTaskManager* manager, uint which) { 309 void UpdateDensePrefixTask::do_it(GCTaskManager* manager, uint which) {
310 310
311 NOT_PRODUCT(GCTraceTime tm("UpdateDensePrefixTask", 311 NOT_PRODUCT(GCTraceTime tm("UpdateDensePrefixTask",
312 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); 312 PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
313 313
314 ParCompactionManager* cm = 314 ParCompactionManager* cm =
315 ParCompactionManager::gc_thread_compaction_manager(which); 315 ParCompactionManager::gc_thread_compaction_manager(which);
316 316
317 PSParallelCompact::update_and_deadwood_in_dense_prefix(cm, 317 PSParallelCompact::update_and_deadwood_in_dense_prefix(cm,
322 322
323 void DrainStacksCompactionTask::do_it(GCTaskManager* manager, uint which) { 323 void DrainStacksCompactionTask::do_it(GCTaskManager* manager, uint which) {
324 assert(Universe::heap()->is_gc_active(), "called outside gc"); 324 assert(Universe::heap()->is_gc_active(), "called outside gc");
325 325
326 NOT_PRODUCT(GCTraceTime tm("DrainStacksCompactionTask", 326 NOT_PRODUCT(GCTraceTime tm("DrainStacksCompactionTask",
327 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); 327 PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
328 328
329 ParCompactionManager* cm = 329 ParCompactionManager* cm =
330 ParCompactionManager::gc_thread_compaction_manager(which); 330 ParCompactionManager::gc_thread_compaction_manager(which);
331 331
332 uint which_stack_index; 332 uint which_stack_index;