< prev index next >

src/share/vm/gc/shared/gcTrace.hpp

Print this page
rev 8823 : imported patch 8133530-add-jfr-event-for-evacuation


  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
< prev index next >