src/hotspot/share/gc/z/zStat.cpp
changeset 58704 8b16701b4636
parent 58703 c203d10291e1
child 58709 662d9e1e2a60
equal deleted inserted replaced
58703:c203d10291e1 58704:8b16701b4636
   714   LogTarget(Debug, gc, phases, start) log;
   714   LogTarget(Debug, gc, phases, start) log;
   715   log_start(log, true /* thread */);
   715   log_start(log, true /* thread */);
   716 }
   716 }
   717 
   717 
   718 void ZStatSubPhase::register_end(const Ticks& start, const Ticks& end) const {
   718 void ZStatSubPhase::register_end(const Ticks& start, const Ticks& end) const {
   719   ZTracer::tracer()->report_thread_phase(*this, start, end);
   719   ZTracer::tracer()->report_thread_phase(name(), start, end);
   720 
   720 
   721   const Tickspan duration = end - start;
   721   const Tickspan duration = end - start;
   722   ZStatSample(_sampler, duration.value());
   722   ZStatSample(_sampler, duration.value());
   723 
   723 
   724   LogTarget(Debug, gc, phases) log;
   724   LogTarget(Debug, gc, phases) log;
   734   LogTarget(Debug, gc, start) log;
   734   LogTarget(Debug, gc, start) log;
   735   log_start(log, true /* thread */);
   735   log_start(log, true /* thread */);
   736 }
   736 }
   737 
   737 
   738 void ZStatCriticalPhase::register_end(const Ticks& start, const Ticks& end) const {
   738 void ZStatCriticalPhase::register_end(const Ticks& start, const Ticks& end) const {
   739   ZTracer::tracer()->report_thread_phase(*this, start, end);
   739   ZTracer::tracer()->report_thread_phase(name(), start, end);
   740 
   740 
   741   const Tickspan duration = end - start;
   741   const Tickspan duration = end - start;
   742   ZStatSample(_sampler, duration.value());
   742   ZStatSample(_sampler, duration.value());
   743   ZStatInc(_counter);
   743   ZStatInc(_counter);
   744 
   744 
   757 THREAD_LOCAL uint32_t ZStatTimerDisable::_active = 0;
   757 THREAD_LOCAL uint32_t ZStatTimerDisable::_active = 0;
   758 
   758 
   759 //
   759 //
   760 // Stat sample/inc
   760 // Stat sample/inc
   761 //
   761 //
   762 void ZStatSample(const ZStatSampler& sampler, uint64_t value, bool trace) {
   762 void ZStatSample(const ZStatSampler& sampler, uint64_t value) {
   763   ZStatSamplerData* const cpu_data = sampler.get();
   763   ZStatSamplerData* const cpu_data = sampler.get();
   764   Atomic::add(1u, &cpu_data->_nsamples);
   764   Atomic::add(1u, &cpu_data->_nsamples);
   765   Atomic::add(value, &cpu_data->_sum);
   765   Atomic::add(value, &cpu_data->_sum);
   766 
   766 
   767   uint64_t max = cpu_data->_max;
   767   uint64_t max = cpu_data->_max;
   780 
   780 
   781     // Retry
   781     // Retry
   782     max = prev_max;
   782     max = prev_max;
   783   }
   783   }
   784 
   784 
   785   if (trace) {
   785   ZTracer::tracer()->report_stat_sampler(sampler, value);
   786     ZTracer::tracer()->report_stat_sampler(sampler, value);
   786 }
   787   }
   787 
   788 }
   788 void ZStatInc(const ZStatCounter& counter, uint64_t increment) {
   789 
       
   790 void ZStatInc(const ZStatCounter& counter, uint64_t increment, bool trace) {
       
   791   ZStatCounterData* const cpu_data = counter.get();
   789   ZStatCounterData* const cpu_data = counter.get();
   792   const uint64_t value = Atomic::add(increment, &cpu_data->_counter);
   790   const uint64_t value = Atomic::add(increment, &cpu_data->_counter);
   793 
   791 
   794   if (trace) {
   792   ZTracer::tracer()->report_stat_counter(counter, increment, value);
   795     ZTracer::tracer()->report_stat_counter(counter, increment, value);
       
   796   }
       
   797 }
   793 }
   798 
   794 
   799 void ZStatInc(const ZStatUnsampledCounter& counter, uint64_t increment) {
   795 void ZStatInc(const ZStatUnsampledCounter& counter, uint64_t increment) {
   800   ZStatCounterData* const cpu_data = counter.get();
   796   ZStatCounterData* const cpu_data = counter.get();
   801   Atomic::add(increment, &cpu_data->_counter);
   797   Atomic::add(increment, &cpu_data->_counter);