30 #include "jfr/jfrEvents.hpp"
31 #include "logging/logLevel.hpp"
32 #include "memory/allocation.hpp"
33 #include "utilities/macros.hpp"
34
35 class LineBuffer;
36 class G1ParScanThreadState;
37 class STWGCTimer;
38
39 template <class T> class WorkerDataArray;
40
41 class G1GCPhaseTimes : public CHeapObj<mtGC> {
42 uint _max_gc_threads;
43 jlong _gc_start_counter;
44 double _gc_pause_time_ms;
45
46 public:
47 enum GCParPhases {
48 GCWorkerStart,
49 ExtRootScan,
50 ExtRootScanSubPhasesStart,
51 ThreadRoots = ExtRootScanSubPhasesStart,
52 UniverseRoots,
53 JNIRoots,
54 ObjectSynchronizerRoots,
55 ManagementRoots,
56 SystemDictionaryRoots,
57 CLDGRoots,
58 JVMTIRoots,
59 #if INCLUDE_AOT
60 AOTCodeRoots,
61 #endif
62 CMRefRoots,
63 WaitForStrongCLD,
64 WeakCLDRoots,
65 SATBFiltering,
66 ExtRootScanSubPhasesEnd = SATBFiltering,
67 UpdateRS,
68 ScanHCC,
69 ScanRS,
70 OptScanRS,
71 CodeRoots,
72 ObjCopy,
73 OptObjCopy,
74 Termination,
75 Other,
76 GCWorkerTotal,
77 GCWorkerEnd,
78 StringDedupQueueFixup,
79 StringDedupTableFixup,
80 RedirtyCards,
81 YoungFreeCSet,
82 NonYoungFreeCSet,
83 GCParPhasesSentinel
84 };
85
86 enum GCScanRSWorkItems {
87 ScanRSScannedCards,
88 ScanRSClaimedCards,
89 ScanRSSkippedCards
90 };
91
92 enum GCUpdateRSWorkItems {
93 UpdateRSProcessedBuffers,
94 UpdateRSScannedCards,
95 UpdateRSSkippedCards
96 };
97
98 enum GCObjCopyWorkItems {
99 ObjCopyLABWaste,
100 ObjCopyLABUndoWaste
101 };
102
103 enum GCOptCSetWorkItems {
104 OptCSetScannedCards,
|
30 #include "jfr/jfrEvents.hpp"
31 #include "logging/logLevel.hpp"
32 #include "memory/allocation.hpp"
33 #include "utilities/macros.hpp"
34
35 class LineBuffer;
36 class G1ParScanThreadState;
37 class STWGCTimer;
38
39 template <class T> class WorkerDataArray;
40
41 class G1GCPhaseTimes : public CHeapObj<mtGC> {
42 uint _max_gc_threads;
43 jlong _gc_start_counter;
44 double _gc_pause_time_ms;
45
46 public:
47 enum GCParPhases {
48 GCWorkerStart,
49 ExtRootScan,
50 ThreadRoots,
51 UniverseRoots,
52 JNIRoots,
53 ObjectSynchronizerRoots,
54 ManagementRoots,
55 SystemDictionaryRoots,
56 CLDGRoots,
57 JVMTIRoots,
58 #if INCLUDE_AOT
59 AOTCodeRoots,
60 #endif
61 CMRefRoots,
62 WaitForStrongCLD,
63 WeakCLDRoots,
64 SATBFiltering,
65 UpdateRS,
66 ScanHCC,
67 ScanRS,
68 OptScanRS,
69 CodeRoots,
70 ObjCopy,
71 OptObjCopy,
72 Termination,
73 Other,
74 GCWorkerTotal,
75 GCWorkerEnd,
76 StringDedupQueueFixup,
77 StringDedupTableFixup,
78 RedirtyCards,
79 YoungFreeCSet,
80 NonYoungFreeCSet,
81 GCParPhasesSentinel
82 };
83
84 static const GCParPhases ExtRootScanSubPhasesStart = ThreadRoots;
85 static const GCParPhases ExtRootScanSubPhasesEnd = SATBFiltering;
86
87 enum GCScanRSWorkItems {
88 ScanRSScannedCards,
89 ScanRSClaimedCards,
90 ScanRSSkippedCards
91 };
92
93 enum GCUpdateRSWorkItems {
94 UpdateRSProcessedBuffers,
95 UpdateRSScannedCards,
96 UpdateRSSkippedCards
97 };
98
99 enum GCObjCopyWorkItems {
100 ObjCopyLABWaste,
101 ObjCopyLABUndoWaste
102 };
103
104 enum GCOptCSetWorkItems {
105 OptCSetScannedCards,
|