< prev index next >

src/share/vm/gc_implementation/g1/g1RootProcessor.cpp

Print this page
rev 8125 : 8077400: Unnecessary and incorrect "Code Cache Roots" G1 log entry
Reviewed-by:


 307   {
 308     G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::SystemDictionaryRoots, worker_i);
 309     if (!_process_strong_tasks->is_task_claimed(G1RP_PS_SystemDictionary_oops_do)) {
 310       SystemDictionary::roots_oops_do(strong_roots, weak_roots);
 311     }
 312   }
 313 
 314   {
 315     G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::StringTableRoots, worker_i);
 316     // All threads execute the following. A specific chunk of buckets
 317     // from the StringTable are the individual tasks.
 318     if (weak_roots != NULL) {
 319       StringTable::possibly_parallel_oops_do(weak_roots);
 320     }
 321   }
 322 }
 323 
 324 void G1RootProcessor::scan_remembered_sets(G1ParPushHeapRSClosure* scan_rs,
 325                                            OopClosure* scan_non_heap_weak_roots,
 326                                            uint worker_i) {
 327   G1GCPhaseTimes* phase_times = _g1h->g1_policy()->phase_times();
 328   G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::CodeCacheRoots, worker_i);
 329 
 330   // Now scan the complement of the collection set.
 331   G1CodeBlobClosure scavenge_cs_nmethods(scan_non_heap_weak_roots);
 332 
 333   _g1h->g1_rem_set()->oops_into_collection_set_do(scan_rs, &scavenge_cs_nmethods, worker_i);
 334 }
 335 
 336 void G1RootProcessor::set_num_workers(int active_workers) {
 337   _process_strong_tasks->set_n_threads(active_workers);
 338 }


 307   {
 308     G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::SystemDictionaryRoots, worker_i);
 309     if (!_process_strong_tasks->is_task_claimed(G1RP_PS_SystemDictionary_oops_do)) {
 310       SystemDictionary::roots_oops_do(strong_roots, weak_roots);
 311     }
 312   }
 313 
 314   {
 315     G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::StringTableRoots, worker_i);
 316     // All threads execute the following. A specific chunk of buckets
 317     // from the StringTable are the individual tasks.
 318     if (weak_roots != NULL) {
 319       StringTable::possibly_parallel_oops_do(weak_roots);
 320     }
 321   }
 322 }
 323 
 324 void G1RootProcessor::scan_remembered_sets(G1ParPushHeapRSClosure* scan_rs,
 325                                            OopClosure* scan_non_heap_weak_roots,
 326                                            uint worker_i) {




 327   G1CodeBlobClosure scavenge_cs_nmethods(scan_non_heap_weak_roots);
 328 
 329   _g1h->g1_rem_set()->oops_into_collection_set_do(scan_rs, &scavenge_cs_nmethods, worker_i);
 330 }
 331 
 332 void G1RootProcessor::set_num_workers(int active_workers) {
 333   _process_strong_tasks->set_n_threads(active_workers);
 334 }
< prev index next >