return data.u64.read();
}
-void PerfCounters::tinc(int idx, utime_t amt)
+void PerfCounters::tinc(int idx, utime_t amt, uint32_t avgcount)
{
if (!m_cct->_conf->perf)
return;
if (!(data.type & PERFCOUNTER_TIME))
return;
if (data.type & PERFCOUNTER_LONGRUNAVG) {
- data.avgcount.inc();
+ data.avgcount.add(avgcount);
data.u64.add(amt.to_nsec());
- data.avgcount2.inc();
+ data.avgcount2.add(avgcount);
} else {
data.u64.add(amt.to_nsec());
}
}
-void PerfCounters::tinc(int idx, ceph::timespan amt)
+void PerfCounters::tinc(int idx, ceph::timespan amt, uint32_t avgcount)
{
if (!m_cct->_conf->perf)
return;
if (!(data.type & PERFCOUNTER_TIME))
return;
if (data.type & PERFCOUNTER_LONGRUNAVG) {
- data.avgcount.inc();
+ data.avgcount.add(avgcount);
data.u64.add(amt.count());
- data.avgcount2.inc();
+ data.avgcount2.add(avgcount);
} else {
data.u64.add(amt.count());
}
uint64_t get(int idx) const;
void tset(int idx, utime_t v);
- void tinc(int idx, utime_t v);
- void tinc(int idx, ceph::timespan v);
+ void tinc(int idx, utime_t v, uint32_t avgcount = 1);
+ void tinc(int idx, ceph::timespan v, uint32_t avgcount = 1);
utime_t tget(int idx) const;
void hinc(int idx, int64_t x, int64_t y);