src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.cpp
changeset 55428 e9da3a44a7ed
parent 52925 9c18c9d839d3
equal deleted inserted replaced
55427:e0be41293b41 55428:e9da3a44a7ed
    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;