< 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 >