20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_SHARED_GCTRACE_HPP
26 #define SHARE_VM_GC_SHARED_GCTRACE_HPP
27
28 #include "gc/shared/copyFailedInfo.hpp"
29 #include "gc/shared/gcCause.hpp"
30 #include "gc/shared/gcId.hpp"
31 #include "gc/shared/gcName.hpp"
32 #include "gc/shared/gcWhen.hpp"
33 #include "memory/allocation.hpp"
34 #include "memory/metaspace.hpp"
35 #include "memory/referenceType.hpp"
36 #include "utilities/macros.hpp"
37 #include "utilities/ticks.hpp"
38 #if INCLUDE_ALL_GCS
39 #include "gc/g1/g1YCTypes.hpp"
40 #endif
41
42 class EvacuationInfo;
43 class GCHeapSummary;
44 class MetaspaceChunkFreeListSummary;
45 class MetaspaceSummary;
46 class PSHeapSummary;
47 class G1HeapSummary;
48 class ReferenceProcessorStats;
49 class TimePartitions;
50 class BoolObjectClosure;
51
52 class SharedGCInfo VALUE_OBJ_CLASS_SPEC {
53 private:
54 GCId _gc_id;
55 GCName _name;
56 GCCause::Cause _cause;
57 Ticks _start_timestamp;
58 Ticks _end_timestamp;
59 Tickspan _sum_of_pauses;
240
241 #if INCLUDE_ALL_GCS
242 class G1MMUTracer : public AllStatic {
243 static void send_g1_mmu_event(const GCId& gcId, double timeSlice, double gcTime, double maxTime);
244
245 public:
246 static void report_mmu(const GCId& gcId, double timeSlice, double gcTime, double maxTime);
247 };
248
249 class G1NewTracer : public YoungGCTracer {
250 G1YoungGCInfo _g1_young_gc_info;
251
252 public:
253 G1NewTracer() : YoungGCTracer(G1New) {}
254
255 void report_yc_type(G1YCType type);
256 void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions);
257 void report_evacuation_info(EvacuationInfo* info);
258 void report_evacuation_failed(EvacuationFailedInfo& ef_info);
259
260 private:
261 void send_g1_young_gc_event();
262 void send_evacuation_info_event(EvacuationInfo* info);
263 void send_evacuation_failed_event(const EvacuationFailedInfo& ef_info) const;
264 };
265 #endif
266
267 class CMSTracer : public OldGCTracer {
268 public:
269 CMSTracer() : OldGCTracer(ConcurrentMarkSweep) {}
270 };
271
272 class G1OldTracer : public OldGCTracer {
273 public:
274 G1OldTracer() : OldGCTracer(G1Old) {}
275 };
276
277 #endif // SHARE_VM_GC_SHARED_GCTRACE_HPP
|
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_SHARED_GCTRACE_HPP
26 #define SHARE_VM_GC_SHARED_GCTRACE_HPP
27
28 #include "gc/shared/copyFailedInfo.hpp"
29 #include "gc/shared/gcCause.hpp"
30 #include "gc/shared/gcId.hpp"
31 #include "gc/shared/gcName.hpp"
32 #include "gc/shared/gcWhen.hpp"
33 #include "memory/allocation.hpp"
34 #include "memory/metaspace.hpp"
35 #include "memory/referenceType.hpp"
36 #include "utilities/macros.hpp"
37 #include "utilities/ticks.hpp"
38 #if INCLUDE_ALL_GCS
39 #include "gc/g1/g1YCTypes.hpp"
40 #include "gcHeapSummary.hpp"
41 #endif
42
43 class EvacuationInfo;
44 class GCHeapSummary;
45 class MetaspaceChunkFreeListSummary;
46 class MetaspaceSummary;
47 class PSHeapSummary;
48 class G1HeapSummary;
49 class ReferenceProcessorStats;
50 class TimePartitions;
51 class BoolObjectClosure;
52
53 class SharedGCInfo VALUE_OBJ_CLASS_SPEC {
54 private:
55 GCId _gc_id;
56 GCName _name;
57 GCCause::Cause _cause;
58 Ticks _start_timestamp;
59 Ticks _end_timestamp;
60 Tickspan _sum_of_pauses;
241
242 #if INCLUDE_ALL_GCS
243 class G1MMUTracer : public AllStatic {
244 static void send_g1_mmu_event(const GCId& gcId, double timeSlice, double gcTime, double maxTime);
245
246 public:
247 static void report_mmu(const GCId& gcId, double timeSlice, double gcTime, double maxTime);
248 };
249
250 class G1NewTracer : public YoungGCTracer {
251 G1YoungGCInfo _g1_young_gc_info;
252
253 public:
254 G1NewTracer() : YoungGCTracer(G1New) {}
255
256 void report_yc_type(G1YCType type);
257 void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions);
258 void report_evacuation_info(EvacuationInfo* info);
259 void report_evacuation_failed(EvacuationFailedInfo& ef_info);
260
261 void report_evacuation_statistics(const G1EvacSummary& young_summary, const G1EvacSummary& old_summary) const;
262 private:
263 void send_g1_young_gc_event();
264 void send_evacuation_info_event(EvacuationInfo* info);
265 void send_evacuation_failed_event(const EvacuationFailedInfo& ef_info) const;
266
267 void send_young_evacuation_statistics(const G1EvacSummary& summary) const;
268 void send_old_evacuation_statistics(const G1EvacSummary& summary) const;
269 };
270 #endif
271
272 class CMSTracer : public OldGCTracer {
273 public:
274 CMSTracer() : OldGCTracer(ConcurrentMarkSweep) {}
275 };
276
277 class G1OldTracer : public OldGCTracer {
278 public:
279 G1OldTracer() : OldGCTracer(G1Old) {}
280 };
281
282 #endif // SHARE_VM_GC_SHARED_GCTRACE_HPP
|