RFR: Add JFR parallel and concurrent events
Aleksey Shipilev
shade at redhat.com
Thu Oct 11 09:01:29 UTC 2018
On 10/10/2018 09:25 PM, Zhengyu Gu wrote:
> The patch adds JFR parallel and concurrent events for Shenandoah.
>
> It also reshuffles a few includes and moves ShenandoahWorkerTimingsTracker and
> ShenandoahTerminationTracker to separate files, to avoid recursive inclusion.
>
>
> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/jfr_conc_par_events/webrev.00/index.html
Looks good.
Nits:
*) Excess newline in shenandoahUtils.cpp:
144
*) I think we can use switch here:
119 bool ShenandoahGCPhase::is_root_work_phase() {
120 ShenandoahPhaseTimings::Phase phase = current_phase();
121 return phase == ShenandoahPhaseTimings::scan_roots ||
122 phase == ShenandoahPhaseTimings::update_roots ||
123 phase == ShenandoahPhaseTimings::init_evac ||
124 phase == ShenandoahPhaseTimings::final_update_refs_roots ||
125 phase == ShenandoahPhaseTimings::degen_gc_update_roots ||
126 phase == ShenandoahPhaseTimings::init_traversal_gc_work ||
127 phase == ShenandoahPhaseTimings::final_traversal_gc_work ||
128 phase == ShenandoahPhaseTimings::final_traversal_update_roots ||
129 phase == ShenandoahPhaseTimings::full_gc_roots;
130 }
*) No need for local variable "current" here?
166 ShenandoahConcurrentWorkerSession::~ShenandoahConcurrentWorkerSession() {
167 ShenandoahPhaseTimings::Phase current = ShenandoahGCPhase::current_phase();
168 _event.commit(GCId::current(), ShenandoahPhaseTimings::phase_name(current));
169 }
170
171 ShenandoahParallelWorkerSession::~ShenandoahParallelWorkerSession() {
172 ShenandoahPhaseTimings::Phase current = ShenandoahGCPhase::current_phase();
173 _event.commit(GCId::current(), _worker_id, ShenandoahPhaseTimings::phase_name(current));
174 }
*) Duplicate "protected"?
121 class ShenandoahWorkerSession : public StackObj {
122 protected:
123 uint _worker_id;
124 protected:
125 ShenandoahWorkerSession(uint worker_id);
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list