< prev index next >

src/share/vm/gc_implementation/shenandoah/shenandoahWorkerPolicy.cpp

Print this page
rev 11463 : Backport Traversal GC

*** 30,39 **** --- 30,41 ---- uint ShenandoahWorkerPolicy::_prev_par_marking = 0; uint ShenandoahWorkerPolicy::_prev_conc_marking = 0; uint ShenandoahWorkerPolicy::_prev_conc_evac = 0; uint ShenandoahWorkerPolicy::_prev_fullgc = 0; uint ShenandoahWorkerPolicy::_prev_degengc = 0; + uint ShenandoahWorkerPolicy::_prev_stw_traversal = 0; + uint ShenandoahWorkerPolicy::_prev_conc_traversal = 0; uint ShenandoahWorkerPolicy::_prev_conc_update_ref = 0; uint ShenandoahWorkerPolicy::_prev_par_update_ref = 0; uint ShenandoahWorkerPolicy::_prev_conc_cleanup = 0; uint ShenandoahWorkerPolicy::_prev_conc_reset = 0;
*** 79,88 **** --- 81,110 ---- active_workers, Threads::number_of_non_daemon_threads()); return _prev_fullgc; } + // Calculate workers for Stop-the-world traversal GC + uint ShenandoahWorkerPolicy::calc_workers_for_stw_traversal() { + uint active_workers = (_prev_stw_traversal == 0) ? ParallelGCThreads : _prev_stw_traversal; + _prev_stw_traversal = + AdaptiveSizePolicy::calc_active_workers(ParallelGCThreads, + active_workers, + Threads::number_of_non_daemon_threads()); + return _prev_stw_traversal; + } + + // Calculate workers for concurent traversal GC + uint ShenandoahWorkerPolicy::calc_workers_for_conc_traversal() { + uint active_workers = (_prev_conc_traversal == 0) ? ConcGCThreads : _prev_conc_traversal; + _prev_conc_traversal = + AdaptiveSizePolicy::calc_active_conc_workers(ConcGCThreads, + active_workers, + Threads::number_of_non_daemon_threads()); + return _prev_conc_traversal; + } + // Calculate workers for concurrent reference update uint ShenandoahWorkerPolicy::calc_workers_for_conc_update_ref() { uint active_workers = (_prev_conc_update_ref == 0) ? ConcGCThreads : _prev_conc_update_ref; _prev_conc_update_ref = AdaptiveSizePolicy::calc_active_conc_workers(ConcGCThreads,
< prev index next >