< prev index next >

src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp

Print this page
rev 52675 : 8213890: Implementation of JEP 344: Abortable Mixed Collections for G1
Reviewed-by:
Contributed-by: erik.helin@oracle.com, stefan.johansson@oracle.com
rev 52676 : imported patch AMGC-impl
rev 52679 : imported patch AMGC-tsch-rev1-log
rev 52680 : imported patch AMGC-tsch-rev2
rev 52681 : [mq]: AMGC-kbar-rev1

*** 61,75 **** --- 61,77 ---- WeakCLDRoots, SATBFiltering, UpdateRS, ScanHCC, ScanRS, + OptScanRS, CodeRoots, #if INCLUDE_AOT AOTCodeRoots, #endif ObjCopy, + OptObjCopy, Termination, Other, GCWorkerTotal, GCWorkerEnd, StringDedupQueueFixup,
*** 90,99 **** --- 92,108 ---- UpdateRSProcessedBuffers, UpdateRSScannedCards, UpdateRSSkippedCards }; + enum GCOptCSetWorkItems { + OptCSetScannedCards, + OptCSetClaimedCards, + OptCSetSkippedCards, + OptCSetUsedMemory + }; + private: // Markers for grouping the phases in the GCPhases enum above static const int GCMainParPhasesLast = GCWorkerEnd; static const int StringDedupPhasesFirst = StringDedupQueueFixup; static const int StringDedupPhasesLast = StringDedupTableFixup;
*** 106,120 **** --- 115,135 ---- WorkerDataArray<size_t>* _scan_rs_scanned_cards; WorkerDataArray<size_t>* _scan_rs_claimed_cards; WorkerDataArray<size_t>* _scan_rs_skipped_cards; + WorkerDataArray<size_t>* _opt_cset_scanned_cards; + WorkerDataArray<size_t>* _opt_cset_claimed_cards; + WorkerDataArray<size_t>* _opt_cset_skipped_cards; + WorkerDataArray<size_t>* _opt_cset_used_memory; + WorkerDataArray<size_t>* _termination_attempts; WorkerDataArray<size_t>* _redirtied_cards; double _cur_collection_par_time_ms; + double _cur_optional_evac_ms; double _cur_collection_code_root_fixup_time_ms; double _cur_strong_code_root_purge_time_ms; double _cur_evac_fail_recalc_used; double _cur_evac_fail_remove_self_forwards;
*** 182,191 **** --- 197,207 ---- void trace_time(const char* name, double value) const; void trace_count(const char* name, size_t value) const; double print_pre_evacuate_collection_set() const; double print_evacuate_collection_set() const; + double print_evacuate_optional_collection_set() const; double print_post_evacuate_collection_set() const; void print_other(double accounted_ms) const; public: G1GCPhaseTimes(STWGCTimer* gc_timer, uint max_gc_threads);
*** 197,210 **** void record_time_secs(GCParPhases phase, uint worker_i, double secs); // add a number of seconds to a phase void add_time_secs(GCParPhases phase, uint worker_i, double secs); ! void record_or_add_objcopy_time_secs(uint worker_i, double secs); void record_thread_work_item(GCParPhases phase, uint worker_i, size_t count, uint index = 0); // return the average time for a phase in milliseconds double average_time_ms(GCParPhases phase); size_t sum_thread_work_items(GCParPhases phase, uint index = 0); --- 213,228 ---- void record_time_secs(GCParPhases phase, uint worker_i, double secs); // add a number of seconds to a phase void add_time_secs(GCParPhases phase, uint worker_i, double secs); ! void record_or_add_time_secs(GCParPhases phase, uint worker_i, double secs); void record_thread_work_item(GCParPhases phase, uint worker_i, size_t count, uint index = 0); + void record_or_add_thread_work_item(GCParPhases phase, uint worker_i, size_t count, uint index = 0); + // return the average time for a phase in milliseconds double average_time_ms(GCParPhases phase); size_t sum_thread_work_items(GCParPhases phase, uint index = 0);
*** 232,241 **** --- 250,263 ---- void record_par_time(double ms) { _cur_collection_par_time_ms = ms; } + void record_optional_evacuation(double ms) { + _cur_optional_evac_ms = ms; + } + void record_code_root_fixup_time(double ms) { _cur_collection_code_root_fixup_time_ms = ms; } void record_strong_code_root_purge_time(double ms) {
< prev index next >