hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp
changeset 21767 41eaa9a17059
parent 19729 0ddd2b7bb9bd
child 23464 ae470a2efd44
equal deleted inserted replaced
21766:941f6e3a1567 21767:41eaa9a17059
    53     event.commit();
    53     event.commit();
    54   }
    54   }
    55 }
    55 }
    56 
    56 
    57 void GCTracer::send_reference_stats_event(ReferenceType type, size_t count) const {
    57 void GCTracer::send_reference_stats_event(ReferenceType type, size_t count) const {
    58   EventGCReferenceStatistics e(UNTIMED);
    58   EventGCReferenceStatistics e;
    59   if (e.should_commit()) {
    59   if (e.should_commit()) {
    60       e.set_gcId(_shared_gc_info.id());
    60       e.set_gcId(_shared_gc_info.id());
    61       e.set_type((u1)type);
    61       e.set_type((u1)type);
    62       e.set_count(count);
    62       e.set_count(count);
    63       e.set_endtime(os::elapsed_counter());
       
    64       e.commit();
    63       e.commit();
    65   }
    64   }
    66 }
    65 }
    67 
    66 
    68 void ParallelOldTracer::send_parallel_old_event() const {
    67 void ParallelOldTracer::send_parallel_old_event() const {
   105   failed_info.set_totalSize(cf_info.total_size());
   104   failed_info.set_totalSize(cf_info.total_size());
   106   return failed_info;
   105   return failed_info;
   107 }
   106 }
   108 
   107 
   109 void YoungGCTracer::send_promotion_failed_event(const PromotionFailedInfo& pf_info) const {
   108 void YoungGCTracer::send_promotion_failed_event(const PromotionFailedInfo& pf_info) const {
   110   EventPromotionFailed e(UNTIMED);
   109   EventPromotionFailed e;
   111   if (e.should_commit()) {
   110   if (e.should_commit()) {
   112     e.set_gcId(_shared_gc_info.id());
   111     e.set_gcId(_shared_gc_info.id());
   113     e.set_data(to_trace_struct(pf_info));
   112     e.set_data(to_trace_struct(pf_info));
   114     e.set_thread(pf_info.thread()->thread_id());
   113     e.set_thread(pf_info.thread()->thread_id());
   115     e.set_endtime(os::elapsed_counter());
       
   116     e.commit();
   114     e.commit();
   117   }
   115   }
   118 }
   116 }
   119 
   117 
   120 // Common to CMS and G1
   118 // Common to CMS and G1
   121 void OldGCTracer::send_concurrent_mode_failure_event() {
   119 void OldGCTracer::send_concurrent_mode_failure_event() {
   122   EventConcurrentModeFailure e(UNTIMED);
   120   EventConcurrentModeFailure e;
   123   if (e.should_commit()) {
   121   if (e.should_commit()) {
   124     e.set_gcId(_shared_gc_info.id());
   122     e.set_gcId(_shared_gc_info.id());
   125     e.set_endtime(os::elapsed_counter());
       
   126     e.commit();
   123     e.commit();
   127   }
   124   }
   128 }
   125 }
   129 
   126 
   130 #if INCLUDE_ALL_GCS
   127 #if INCLUDE_ALL_GCS
   138     e.commit();
   135     e.commit();
   139   }
   136   }
   140 }
   137 }
   141 
   138 
   142 void G1NewTracer::send_evacuation_info_event(EvacuationInfo* info) {
   139 void G1NewTracer::send_evacuation_info_event(EvacuationInfo* info) {
   143   EventEvacuationInfo e(UNTIMED);
   140   EventEvacuationInfo e;
   144   if (e.should_commit()) {
   141   if (e.should_commit()) {
   145     e.set_gcId(_shared_gc_info.id());
   142     e.set_gcId(_shared_gc_info.id());
   146     e.set_cSetRegions(info->collectionset_regions());
   143     e.set_cSetRegions(info->collectionset_regions());
   147     e.set_cSetUsedBefore(info->collectionset_used_before());
   144     e.set_cSetUsedBefore(info->collectionset_used_before());
   148     e.set_cSetUsedAfter(info->collectionset_used_after());
   145     e.set_cSetUsedAfter(info->collectionset_used_after());
   149     e.set_allocationRegions(info->allocation_regions());
   146     e.set_allocationRegions(info->allocation_regions());
   150     e.set_allocRegionsUsedBefore(info->alloc_regions_used_before());
   147     e.set_allocRegionsUsedBefore(info->alloc_regions_used_before());
   151     e.set_allocRegionsUsedAfter(info->alloc_regions_used_before() + info->bytes_copied());
   148     e.set_allocRegionsUsedAfter(info->alloc_regions_used_before() + info->bytes_copied());
   152     e.set_bytesCopied(info->bytes_copied());
   149     e.set_bytesCopied(info->bytes_copied());
   153     e.set_regionsFreed(info->regions_freed());
   150     e.set_regionsFreed(info->regions_freed());
   154     e.set_endtime(os::elapsed_counter());
       
   155     e.commit();
   151     e.commit();
   156   }
   152   }
   157 }
   153 }
   158 
   154 
   159 void G1NewTracer::send_evacuation_failed_event(const EvacuationFailedInfo& ef_info) const {
   155 void G1NewTracer::send_evacuation_failed_event(const EvacuationFailedInfo& ef_info) const {
   160   EventEvacuationFailed e(UNTIMED);
   156   EventEvacuationFailed e;
   161   if (e.should_commit()) {
   157   if (e.should_commit()) {
   162     e.set_gcId(_shared_gc_info.id());
   158     e.set_gcId(_shared_gc_info.id());
   163     e.set_data(to_trace_struct(ef_info));
   159     e.set_data(to_trace_struct(ef_info));
   164     e.set_endtime(os::elapsed_counter());
       
   165     e.commit();
   160     e.commit();
   166   }
   161   }
   167 }
   162 }
   168 #endif
   163 #endif
   169 
   164 
   193   GCHeapSummaryEventSender(GCId id, GCWhen::Type when) : _id(id), _when(when) {}
   188   GCHeapSummaryEventSender(GCId id, GCWhen::Type when) : _id(id), _when(when) {}
   194 
   189 
   195   void visit(const GCHeapSummary* heap_summary) const {
   190   void visit(const GCHeapSummary* heap_summary) const {
   196     const VirtualSpaceSummary& heap_space = heap_summary->heap();
   191     const VirtualSpaceSummary& heap_space = heap_summary->heap();
   197 
   192 
   198     EventGCHeapSummary e(UNTIMED);
   193     EventGCHeapSummary e;
   199     if (e.should_commit()) {
   194     if (e.should_commit()) {
   200       e.set_gcId(_id);
   195       e.set_gcId(_id);
   201       e.set_when((u1)_when);
   196       e.set_when((u1)_when);
   202       e.set_heapSpace(to_trace_struct(heap_space));
   197       e.set_heapSpace(to_trace_struct(heap_space));
   203       e.set_heapUsed(heap_summary->used());
   198       e.set_heapUsed(heap_summary->used());
   204       e.set_endtime(os::elapsed_counter());
       
   205       e.commit();
   199       e.commit();
   206     }
   200     }
   207   }
   201   }
   208 
   202 
   209   void visit(const PSHeapSummary* ps_heap_summary) const {
   203   void visit(const PSHeapSummary* ps_heap_summary) const {
   214     const VirtualSpaceSummary& young_summary = ps_heap_summary->young();
   208     const VirtualSpaceSummary& young_summary = ps_heap_summary->young();
   215     const SpaceSummary& eden_space = ps_heap_summary->eden();
   209     const SpaceSummary& eden_space = ps_heap_summary->eden();
   216     const SpaceSummary& from_space = ps_heap_summary->from();
   210     const SpaceSummary& from_space = ps_heap_summary->from();
   217     const SpaceSummary& to_space = ps_heap_summary->to();
   211     const SpaceSummary& to_space = ps_heap_summary->to();
   218 
   212 
   219     EventPSHeapSummary e(UNTIMED);
   213     EventPSHeapSummary e;
   220     if (e.should_commit()) {
   214     if (e.should_commit()) {
   221       e.set_gcId(_id);
   215       e.set_gcId(_id);
   222       e.set_when((u1)_when);
   216       e.set_when((u1)_when);
   223 
   217 
   224       e.set_oldSpace(to_trace_struct(ps_heap_summary->old()));
   218       e.set_oldSpace(to_trace_struct(ps_heap_summary->old()));
   225       e.set_oldObjectSpace(to_trace_struct(ps_heap_summary->old_space()));
   219       e.set_oldObjectSpace(to_trace_struct(ps_heap_summary->old_space()));
   226       e.set_youngSpace(to_trace_struct(ps_heap_summary->young()));
   220       e.set_youngSpace(to_trace_struct(ps_heap_summary->young()));
   227       e.set_edenSpace(to_trace_struct(ps_heap_summary->eden()));
   221       e.set_edenSpace(to_trace_struct(ps_heap_summary->eden()));
   228       e.set_fromSpace(to_trace_struct(ps_heap_summary->from()));
   222       e.set_fromSpace(to_trace_struct(ps_heap_summary->from()));
   229       e.set_toSpace(to_trace_struct(ps_heap_summary->to()));
   223       e.set_toSpace(to_trace_struct(ps_heap_summary->to()));
   230       e.set_endtime(os::elapsed_counter());
       
   231       e.commit();
   224       e.commit();
   232     }
   225     }
   233   }
   226   }
   234 };
   227 };
   235 
   228 
   247 
   240 
   248   return meta_sizes;
   241   return meta_sizes;
   249 }
   242 }
   250 
   243 
   251 void GCTracer::send_meta_space_summary_event(GCWhen::Type when, const MetaspaceSummary& meta_space_summary) const {
   244 void GCTracer::send_meta_space_summary_event(GCWhen::Type when, const MetaspaceSummary& meta_space_summary) const {
   252   EventMetaspaceSummary e(UNTIMED);
   245   EventMetaspaceSummary e;
   253   if (e.should_commit()) {
   246   if (e.should_commit()) {
   254     e.set_gcId(_shared_gc_info.id());
   247     e.set_gcId(_shared_gc_info.id());
   255     e.set_when((u1) when);
   248     e.set_when((u1) when);
   256     e.set_metaspace(to_trace_struct(meta_space_summary.meta_space()));
   249     e.set_metaspace(to_trace_struct(meta_space_summary.meta_space()));
   257     e.set_dataSpace(to_trace_struct(meta_space_summary.data_space()));
   250     e.set_dataSpace(to_trace_struct(meta_space_summary.data_space()));
   258     e.set_classSpace(to_trace_struct(meta_space_summary.class_space()));
   251     e.set_classSpace(to_trace_struct(meta_space_summary.class_space()));
   259     e.set_endtime(os::elapsed_counter());
       
   260     e.commit();
   252     e.commit();
   261   }
   253   }
   262 }
   254 }
   263 
   255 
   264 class PhaseSender : public PhaseVisitor {
   256 class PhaseSender : public PhaseVisitor {