< prev index next >

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

Print this page




 139   void send_garbage_collection_event() const;
 140   void send_gc_heap_summary_event(GCWhen::Type when, const GCHeapSummary& heap_summary) const;
 141   void send_meta_space_summary_event(GCWhen::Type when, const MetaspaceSummary& meta_space_summary) const;
 142   void send_metaspace_chunk_free_list_summary(GCWhen::Type when, Metaspace::MetadataType mdtype, const MetaspaceChunkFreeListSummary& summary) const;
 143   void send_reference_stats_event(ReferenceType type, size_t count) const;
 144   void send_phase_events(TimePartitions* time_partitions) const;
 145 };
 146 
 147 class YoungGCTracer : public GCTracer {
 148   static const uint UNSET_TENURING_THRESHOLD = (uint) -1;
 149 
 150   uint _tenuring_threshold;
 151 
 152  protected:
 153   YoungGCTracer(GCName name) : GCTracer(name), _tenuring_threshold(UNSET_TENURING_THRESHOLD) {}
 154   virtual void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions);
 155 
 156  public:
 157   void report_promotion_failed(const PromotionFailedInfo& pf_info);
 158   void report_tenuring_threshold(const uint tenuring_threshold);






















 159 
 160  private:
 161   void send_young_gc_event() const;
 162   void send_promotion_failed_event(const PromotionFailedInfo& pf_info) const;







 163 };
 164 
 165 class OldGCTracer : public GCTracer {
 166  protected:
 167   OldGCTracer(GCName name) : GCTracer(name) {}
 168   virtual void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions);
 169 
 170  public:
 171   void report_concurrent_mode_failure();
 172 
 173  private:
 174   void send_old_gc_event() const;
 175   void send_concurrent_mode_failure_event();
 176 };
 177 
 178 class ParallelOldTracer : public OldGCTracer {
 179   ParallelOldGCInfo _parallel_old_gc_info;
 180 
 181  public:
 182   ParallelOldTracer() : OldGCTracer(ParallelOld) {}


 193  public:
 194   SerialOldTracer() : OldGCTracer(SerialOld) {}
 195 };
 196 
 197 class ParallelScavengeTracer : public YoungGCTracer {
 198  public:
 199   ParallelScavengeTracer() : YoungGCTracer(ParallelScavenge) {}
 200 };
 201 
 202 class DefNewTracer : public YoungGCTracer {
 203  public:
 204   DefNewTracer() : YoungGCTracer(DefNew) {}
 205 };
 206 
 207 class ParNewTracer : public YoungGCTracer {
 208  public:
 209   ParNewTracer() : YoungGCTracer(ParNew) {}
 210 };
 211 
 212 #if INCLUDE_ALL_GCS







 213 class G1NewTracer : public YoungGCTracer {
 214   G1YoungGCInfo _g1_young_gc_info;
 215 
 216  public:
 217   G1NewTracer() : YoungGCTracer(G1New) {}
 218 
 219   void report_yc_type(G1YCType type);
 220   void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions);
 221   void report_evacuation_info(EvacuationInfo* info);
 222   void report_evacuation_failed(EvacuationFailedInfo& ef_info);
 223 
 224  private:
 225   void send_g1_young_gc_event();
 226   void send_evacuation_info_event(EvacuationInfo* info);
 227   void send_evacuation_failed_event(const EvacuationFailedInfo& ef_info) const;
 228 };
 229 #endif
 230 
 231 class CMSTracer : public OldGCTracer {
 232  public:


 139   void send_garbage_collection_event() const;
 140   void send_gc_heap_summary_event(GCWhen::Type when, const GCHeapSummary& heap_summary) const;
 141   void send_meta_space_summary_event(GCWhen::Type when, const MetaspaceSummary& meta_space_summary) const;
 142   void send_metaspace_chunk_free_list_summary(GCWhen::Type when, Metaspace::MetadataType mdtype, const MetaspaceChunkFreeListSummary& summary) const;
 143   void send_reference_stats_event(ReferenceType type, size_t count) const;
 144   void send_phase_events(TimePartitions* time_partitions) const;
 145 };
 146 
 147 class YoungGCTracer : public GCTracer {
 148   static const uint UNSET_TENURING_THRESHOLD = (uint) -1;
 149 
 150   uint _tenuring_threshold;
 151 
 152  protected:
 153   YoungGCTracer(GCName name) : GCTracer(name), _tenuring_threshold(UNSET_TENURING_THRESHOLD) {}
 154   virtual void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions);
 155 
 156  public:
 157   void report_promotion_failed(const PromotionFailedInfo& pf_info);
 158   void report_tenuring_threshold(const uint tenuring_threshold);
 159   /*
 160    * Methods for reporting Promotion in new or outside PLAB Events.
 161    *
 162    * The object age is always required as it is not certain that the mark word
 163    * of the oop can be trusted at this stage.
 164    *
 165    * obj_size is the size of the promoted object in bytes.
 166    *
 167    * tenured should be true if the object has been promoted to the old
 168    * space during this GC, if the object is copied to survivor space
 169    * from young space or survivor space (aging) tenured should be false.
 170    *
 171    * plab_size is the size of the newly allocated PLAB in bytes.
 172    */
 173   bool should_report_promotion_events() const;
 174   bool should_report_promotion_in_new_plab_event() const;
 175   bool should_report_promotion_outside_plab_event() const;
 176   void report_promotion_in_new_plab_event(Klass* klass, size_t obj_size,
 177                                           uint age, bool tenured,
 178                                           size_t plab_size) const;
 179   void report_promotion_outside_plab_event(Klass* klass, size_t obj_size,
 180                                            uint age, bool tenured) const;
 181 
 182  private:
 183   void send_young_gc_event() const;
 184   void send_promotion_failed_event(const PromotionFailedInfo& pf_info) const;
 185   bool should_send_promotion_in_new_plab_event() const;
 186   bool should_send_promotion_outside_plab_event() const;
 187   void send_promotion_in_new_plab_event(Klass* klass, size_t obj_size,
 188                                         uint age, bool tenured,
 189                                         size_t plab_size) const;
 190   void send_promotion_outside_plab_event(Klass* klass, size_t obj_size,
 191                                          uint age, bool tenured) const;
 192 };
 193 
 194 class OldGCTracer : public GCTracer {
 195  protected:
 196   OldGCTracer(GCName name) : GCTracer(name) {}
 197   virtual void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions);
 198 
 199  public:
 200   void report_concurrent_mode_failure();
 201 
 202  private:
 203   void send_old_gc_event() const;
 204   void send_concurrent_mode_failure_event();
 205 };
 206 
 207 class ParallelOldTracer : public OldGCTracer {
 208   ParallelOldGCInfo _parallel_old_gc_info;
 209 
 210  public:
 211   ParallelOldTracer() : OldGCTracer(ParallelOld) {}


 222  public:
 223   SerialOldTracer() : OldGCTracer(SerialOld) {}
 224 };
 225 
 226 class ParallelScavengeTracer : public YoungGCTracer {
 227  public:
 228   ParallelScavengeTracer() : YoungGCTracer(ParallelScavenge) {}
 229 };
 230 
 231 class DefNewTracer : public YoungGCTracer {
 232  public:
 233   DefNewTracer() : YoungGCTracer(DefNew) {}
 234 };
 235 
 236 class ParNewTracer : public YoungGCTracer {
 237  public:
 238   ParNewTracer() : YoungGCTracer(ParNew) {}
 239 };
 240 
 241 #if INCLUDE_ALL_GCS
 242 class G1MMUTracer : public AllStatic {
 243   static void send_g1_mmu_event(double time_slice_ms, double gc_time_ms, double max_time_ms);
 244 
 245  public:
 246   static void report_mmu(double time_slice_sec, double gc_time_sec, double max_time_sec);
 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:
< prev index next >