equal
deleted
inserted
replaced
28 #include "runtime/thread.hpp" |
28 #include "runtime/thread.hpp" |
29 |
29 |
30 uint ShenandoahWorkerPolicy::_prev_par_marking = 0; |
30 uint ShenandoahWorkerPolicy::_prev_par_marking = 0; |
31 uint ShenandoahWorkerPolicy::_prev_conc_marking = 0; |
31 uint ShenandoahWorkerPolicy::_prev_conc_marking = 0; |
32 uint ShenandoahWorkerPolicy::_prev_conc_evac = 0; |
32 uint ShenandoahWorkerPolicy::_prev_conc_evac = 0; |
|
33 uint ShenandoahWorkerPolicy::_prev_conc_root_proc = 0; |
33 uint ShenandoahWorkerPolicy::_prev_fullgc = 0; |
34 uint ShenandoahWorkerPolicy::_prev_fullgc = 0; |
34 uint ShenandoahWorkerPolicy::_prev_degengc = 0; |
35 uint ShenandoahWorkerPolicy::_prev_degengc = 0; |
35 uint ShenandoahWorkerPolicy::_prev_stw_traversal = 0; |
36 uint ShenandoahWorkerPolicy::_prev_stw_traversal = 0; |
36 uint ShenandoahWorkerPolicy::_prev_conc_traversal = 0; |
37 uint ShenandoahWorkerPolicy::_prev_conc_traversal = 0; |
37 uint ShenandoahWorkerPolicy::_prev_conc_update_ref = 0; |
38 uint ShenandoahWorkerPolicy::_prev_conc_update_ref = 0; |
59 } |
60 } |
60 |
61 |
61 // Reuse the calculation result from init marking |
62 // Reuse the calculation result from init marking |
62 uint ShenandoahWorkerPolicy::calc_workers_for_final_marking() { |
63 uint ShenandoahWorkerPolicy::calc_workers_for_final_marking() { |
63 return _prev_par_marking; |
64 return _prev_par_marking; |
|
65 } |
|
66 |
|
67 // Calculate workers for concurrent root processing |
|
68 uint ShenandoahWorkerPolicy::calc_workers_for_conc_root_processing() { |
|
69 uint active_workers = (_prev_conc_root_proc == 0) ? ConcGCThreads : _prev_conc_root_proc; |
|
70 _prev_conc_root_proc = |
|
71 WorkerPolicy::calc_active_conc_workers(ConcGCThreads, |
|
72 active_workers, |
|
73 Threads::number_of_non_daemon_threads()); |
|
74 return _prev_conc_root_proc; |
64 } |
75 } |
65 |
76 |
66 // Calculate workers for concurrent evacuation (concurrent GC) |
77 // Calculate workers for concurrent evacuation (concurrent GC) |
67 uint ShenandoahWorkerPolicy::calc_workers_for_conc_evac() { |
78 uint ShenandoahWorkerPolicy::calc_workers_for_conc_evac() { |
68 uint active_workers = (_prev_conc_evac == 0) ? ConcGCThreads : _prev_conc_evac; |
79 uint active_workers = (_prev_conc_evac == 0) ? ConcGCThreads : _prev_conc_evac; |