95 evac_management_roots,
96 evac_system_dictionary_roots,
97 evac_cldg_roots,
98 evac_jvmti_roots,
99
100 conc_mark,
101 conc_evac,
102 reset_bitmaps,
103
104 full_gc,
105 full_gc_heapdumps,
106 full_gc_prepare,
107 full_gc_mark,
108 full_gc_mark_drain_queues,
109 full_gc_mark_weakrefs,
110 full_gc_mark_class_unloading,
111 full_gc_calculate_addresses,
112 full_gc_adjust_pointers,
113 full_gc_copy_objects,
114
115 partial_gc,
116 _num_phases
117 };
118
119 private:
120 struct TimingData {
121 HdrSeq _secs;
122 double _start;
123 size_t _count;
124 };
125
126 private:
127 TimingData _timing_data[_num_phases];
128 const char* _phase_names[_num_phases];
129
130 size_t _user_requested_gcs;
131 size_t _allocation_failure_gcs;
132 size_t _degenerated_cm;
133 size_t _successful_cm;
134
166 void record_gc_start();
167 void record_gc_end();
168
169 void record_phase_start(TimingPhase phase);
170 void record_phase_end(TimingPhase phase);
171
172 void record_workers_start(TimingPhase phase);
173 void record_workers_end(TimingPhase phase);
174
175 void report_concgc_cancelled();
176
177 void record_user_requested_gc();
178 void record_allocation_failure_gc();
179
180 void record_bytes_allocated(size_t bytes);
181 void record_bytes_reclaimed(size_t bytes);
182 void record_bytes_start_CM(size_t bytes);
183 void record_bytes_end_CM(size_t bytes);
184 bool should_start_concurrent_mark(size_t used, size_t capacity);
185 bool should_start_partial_gc();
186 bool handover_cancelled_marking();
187
188 void record_cm_cancelled();
189 void record_cm_success();
190 void record_cm_degenerated();
191 void record_full_gc();
192
193 void choose_collection_set(ShenandoahCollectionSet* collection_set, int* connections=NULL);
194 void choose_free_set(ShenandoahFreeSet* free_set);
195
196 bool process_references();
197 bool unload_classes();
198
199 void print_tracing_info(outputStream* out);
200
201 GCTimer* conc_timer(){return _conc_timer;}
202 GCTimer* stw_timer() {return _stw_timer;}
203 ShenandoahTracer* tracer() {return _tracer;}
204
205 void set_conc_gc_aborted() { _conc_gc_aborted = true;}
|
95 evac_management_roots,
96 evac_system_dictionary_roots,
97 evac_cldg_roots,
98 evac_jvmti_roots,
99
100 conc_mark,
101 conc_evac,
102 reset_bitmaps,
103
104 full_gc,
105 full_gc_heapdumps,
106 full_gc_prepare,
107 full_gc_mark,
108 full_gc_mark_drain_queues,
109 full_gc_mark_weakrefs,
110 full_gc_mark_class_unloading,
111 full_gc_calculate_addresses,
112 full_gc_adjust_pointers,
113 full_gc_copy_objects,
114
115 conc_update_refs,
116 pre_update_refs,
117 post_update_refs,
118
119 partial_gc,
120 _num_phases
121 };
122
123 private:
124 struct TimingData {
125 HdrSeq _secs;
126 double _start;
127 size_t _count;
128 };
129
130 private:
131 TimingData _timing_data[_num_phases];
132 const char* _phase_names[_num_phases];
133
134 size_t _user_requested_gcs;
135 size_t _allocation_failure_gcs;
136 size_t _degenerated_cm;
137 size_t _successful_cm;
138
170 void record_gc_start();
171 void record_gc_end();
172
173 void record_phase_start(TimingPhase phase);
174 void record_phase_end(TimingPhase phase);
175
176 void record_workers_start(TimingPhase phase);
177 void record_workers_end(TimingPhase phase);
178
179 void report_concgc_cancelled();
180
181 void record_user_requested_gc();
182 void record_allocation_failure_gc();
183
184 void record_bytes_allocated(size_t bytes);
185 void record_bytes_reclaimed(size_t bytes);
186 void record_bytes_start_CM(size_t bytes);
187 void record_bytes_end_CM(size_t bytes);
188 bool should_start_concurrent_mark(size_t used, size_t capacity);
189 bool should_start_partial_gc();
190
191 // Returns true when there should be a separate concurrent reference
192 // updating phase after evacuation.
193 bool update_refs_early();
194
195 bool handover_cancelled_marking();
196
197 void record_cm_cancelled();
198 void record_cm_success();
199 void record_cm_degenerated();
200 void record_full_gc();
201
202 void choose_collection_set(ShenandoahCollectionSet* collection_set, int* connections=NULL);
203 void choose_free_set(ShenandoahFreeSet* free_set);
204
205 bool process_references();
206 bool unload_classes();
207
208 void print_tracing_info(outputStream* out);
209
210 GCTimer* conc_timer(){return _conc_timer;}
211 GCTimer* stw_timer() {return _stw_timer;}
212 ShenandoahTracer* tracer() {return _tracer;}
213
214 void set_conc_gc_aborted() { _conc_gc_aborted = true;}
|