63 new ZStatisticsCounterTypeConstant()); 64 JfrSerializer::register_serializer(TYPE_ZSTATISTICSSAMPLERTYPE, 65 false /* require_safepoint */, 66 true /* permit_cache */, 67 new ZStatisticsSamplerTypeConstant()); 68 } 69 #endif 70 71 ZTracer* ZTracer::_tracer = NULL; 72 73 ZTracer::ZTracer() : 74 GCTracer(Z) {} 75 76 void ZTracer::initialize() { 77 assert(_tracer == NULL, "Already initialized"); 78 _tracer = new (ResourceObj::C_HEAP, mtGC) ZTracer(); 79 JFR_ONLY(register_jfr_type_serializers()); 80 } 81 82 void ZTracer::send_stat_counter(uint32_t counter_id, uint64_t increment, uint64_t value) { 83 NoSafepointVerifier nsv(true, !SafepointSynchronize::is_at_safepoint()); 84 85 EventZStatisticsCounter e; 86 if (e.should_commit()) { 87 e.set_id(counter_id); 88 e.set_increment(increment); 89 e.set_value(value); 90 e.commit(); 91 } 92 } 93 94 void ZTracer::send_stat_sampler(uint32_t sampler_id, uint64_t value) { 95 NoSafepointVerifier nsv(true, !SafepointSynchronize::is_at_safepoint()); 96 97 EventZStatisticsSampler e; 98 if (e.should_commit()) { 99 e.set_id(sampler_id); 100 e.set_value(value); 101 e.commit(); 102 } 103 } 104 105 void ZTracer::send_thread_phase(const char* name, const Ticks& start, const Ticks& end) { 106 NoSafepointVerifier nsv(true, !SafepointSynchronize::is_at_safepoint()); 107 108 EventZThreadPhase e(UNTIMED); 109 if (e.should_commit()) { 110 e.set_gcId(GCId::current_or_undefined()); 111 e.set_name(name); 112 e.set_starttime(start); 113 e.set_endtime(end); 114 e.commit(); 115 } 116 } 117 118 void ZTracer::send_page_alloc(size_t size, size_t used, size_t free, size_t cache, bool nonblocking, bool noreserve) { 119 NoSafepointVerifier nsv(true, !SafepointSynchronize::is_at_safepoint()); 120 121 EventZPageAllocation e; 122 if (e.should_commit()) { 123 e.set_pageSize(size); 124 e.set_usedAfter(used); 125 e.set_freeAfter(free); 126 e.set_inCacheAfter(cache); 127 e.set_nonBlocking(nonblocking); 128 e.set_noReserve(noreserve); 129 e.commit(); 130 } 131 } 132 133 void ZTracer::report_stat_counter(const ZStatCounter& counter, uint64_t increment, uint64_t value) { 134 send_stat_counter(counter.id(), increment, value); 135 } 136 137 void ZTracer::report_stat_sampler(const ZStatSampler& sampler, uint64_t value) { 138 send_stat_sampler(sampler.id(), value); 139 } | 63 new ZStatisticsCounterTypeConstant()); 64 JfrSerializer::register_serializer(TYPE_ZSTATISTICSSAMPLERTYPE, 65 false /* require_safepoint */, 66 true /* permit_cache */, 67 new ZStatisticsSamplerTypeConstant()); 68 } 69 #endif 70 71 ZTracer* ZTracer::_tracer = NULL; 72 73 ZTracer::ZTracer() : 74 GCTracer(Z) {} 75 76 void ZTracer::initialize() { 77 assert(_tracer == NULL, "Already initialized"); 78 _tracer = new (ResourceObj::C_HEAP, mtGC) ZTracer(); 79 JFR_ONLY(register_jfr_type_serializers()); 80 } 81 82 void ZTracer::send_stat_counter(uint32_t counter_id, uint64_t increment, uint64_t value) { 83 NoSafepointVerifier nsv; 84 85 EventZStatisticsCounter e; 86 if (e.should_commit()) { 87 e.set_id(counter_id); 88 e.set_increment(increment); 89 e.set_value(value); 90 e.commit(); 91 } 92 } 93 94 void ZTracer::send_stat_sampler(uint32_t sampler_id, uint64_t value) { 95 NoSafepointVerifier nsv; 96 97 EventZStatisticsSampler e; 98 if (e.should_commit()) { 99 e.set_id(sampler_id); 100 e.set_value(value); 101 e.commit(); 102 } 103 } 104 105 void ZTracer::send_thread_phase(const char* name, const Ticks& start, const Ticks& end) { 106 NoSafepointVerifier nsv; 107 108 EventZThreadPhase e(UNTIMED); 109 if (e.should_commit()) { 110 e.set_gcId(GCId::current_or_undefined()); 111 e.set_name(name); 112 e.set_starttime(start); 113 e.set_endtime(end); 114 e.commit(); 115 } 116 } 117 118 void ZTracer::send_page_alloc(size_t size, size_t used, size_t free, size_t cache, bool nonblocking, bool noreserve) { 119 NoSafepointVerifier nsv; 120 121 EventZPageAllocation e; 122 if (e.should_commit()) { 123 e.set_pageSize(size); 124 e.set_usedAfter(used); 125 e.set_freeAfter(free); 126 e.set_inCacheAfter(cache); 127 e.set_nonBlocking(nonblocking); 128 e.set_noReserve(noreserve); 129 e.commit(); 130 } 131 } 132 133 void ZTracer::report_stat_counter(const ZStatCounter& counter, uint64_t increment, uint64_t value) { 134 send_stat_counter(counter.id(), increment, value); 135 } 136 137 void ZTracer::report_stat_sampler(const ZStatSampler& sampler, uint64_t value) { 138 send_stat_sampler(sampler.id(), value); 139 } |