< prev index next >

src/hotspot/share/gc/z/zStat.cpp

Print this page

        

*** 422,434 **** const uint32_t ncpus = ZCPU::count(); for (uint32_t i = 0; i < ncpus; i++) { ZStatSamplerData* const cpu_data = get_cpu_local<ZStatSamplerData>(i); if (cpu_data->_nsamples > 0) { ! const uint64_t nsamples = Atomic::xchg((uint64_t)0, &cpu_data->_nsamples); ! const uint64_t sum = Atomic::xchg((uint64_t)0, &cpu_data->_sum); ! const uint64_t max = Atomic::xchg((uint64_t)0, &cpu_data->_max); all._nsamples += nsamples; all._sum += sum; if (all._max < max) { all._max = max; } --- 422,434 ---- const uint32_t ncpus = ZCPU::count(); for (uint32_t i = 0; i < ncpus; i++) { ZStatSamplerData* const cpu_data = get_cpu_local<ZStatSamplerData>(i); if (cpu_data->_nsamples > 0) { ! const uint64_t nsamples = Atomic::xchg(&cpu_data->_nsamples, (uint64_t)0); ! const uint64_t sum = Atomic::xchg(&cpu_data->_sum, (uint64_t)0); ! const uint64_t max = Atomic::xchg(&cpu_data->_max, (uint64_t)0); all._nsamples += nsamples; all._sum += sum; if (all._max < max) { all._max = max; }
*** 457,467 **** uint64_t counter = 0; const uint32_t ncpus = ZCPU::count(); for (uint32_t i = 0; i < ncpus; i++) { ZStatCounterData* const cpu_data = get_cpu_local<ZStatCounterData>(i); ! counter += Atomic::xchg((uint64_t)0, &cpu_data->_counter); } ZStatSample(_sampler, counter); } --- 457,467 ---- uint64_t counter = 0; const uint32_t ncpus = ZCPU::count(); for (uint32_t i = 0; i < ncpus; i++) { ZStatCounterData* const cpu_data = get_cpu_local<ZStatCounterData>(i); ! counter += Atomic::xchg(&cpu_data->_counter, (uint64_t)0); } ZStatSample(_sampler, counter); }
*** 479,489 **** ZStatCounterData all; const uint32_t ncpus = ZCPU::count(); for (uint32_t i = 0; i < ncpus; i++) { ZStatCounterData* const cpu_data = get_cpu_local<ZStatCounterData>(i); ! all._counter += Atomic::xchg((uint64_t)0, &cpu_data->_counter); } return all; } --- 479,489 ---- ZStatCounterData all; const uint32_t ncpus = ZCPU::count(); for (uint32_t i = 0; i < ncpus; i++) { ZStatCounterData* const cpu_data = get_cpu_local<ZStatCounterData>(i); ! all._counter += Atomic::xchg(&cpu_data->_counter, (uint64_t)0); } return all; }
*** 759,780 **** // // Stat sample/inc // void ZStatSample(const ZStatSampler& sampler, uint64_t value) { ZStatSamplerData* const cpu_data = sampler.get(); ! Atomic::add(1u, &cpu_data->_nsamples); ! Atomic::add(value, &cpu_data->_sum); uint64_t max = cpu_data->_max; for (;;) { if (max >= value) { // Not max break; } const uint64_t new_max = value; ! const uint64_t prev_max = Atomic::cmpxchg(new_max, &cpu_data->_max, max); if (prev_max == max) { // Success break; } --- 759,780 ---- // // Stat sample/inc // void ZStatSample(const ZStatSampler& sampler, uint64_t value) { ZStatSamplerData* const cpu_data = sampler.get(); ! Atomic::add(&cpu_data->_nsamples, 1u); ! Atomic::add(&cpu_data->_sum, value); uint64_t max = cpu_data->_max; for (;;) { if (max >= value) { // Not max break; } const uint64_t new_max = value; ! const uint64_t prev_max = Atomic::cmpxchg(&cpu_data->_max, max, new_max); if (prev_max == max) { // Success break; }
*** 785,802 **** ZTracer::tracer()->report_stat_sampler(sampler, value); } void ZStatInc(const ZStatCounter& counter, uint64_t increment) { ZStatCounterData* const cpu_data = counter.get(); ! const uint64_t value = Atomic::add(increment, &cpu_data->_counter); ZTracer::tracer()->report_stat_counter(counter, increment, value); } void ZStatInc(const ZStatUnsampledCounter& counter, uint64_t increment) { ZStatCounterData* const cpu_data = counter.get(); ! Atomic::add(increment, &cpu_data->_counter); } // // Stat allocation rate // --- 785,802 ---- ZTracer::tracer()->report_stat_sampler(sampler, value); } void ZStatInc(const ZStatCounter& counter, uint64_t increment) { ZStatCounterData* const cpu_data = counter.get(); ! const uint64_t value = Atomic::add(&cpu_data->_counter, increment); ZTracer::tracer()->report_stat_counter(counter, increment, value); } void ZStatInc(const ZStatUnsampledCounter& counter, uint64_t increment) { ZStatCounterData* const cpu_data = counter.get(); ! Atomic::add(&cpu_data->_counter, increment); } // // Stat allocation rate //
< prev index next >