]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
common/perf_counter: make tinc() handle batch-processing
authorJianpeng Ma <jianpeng.ma@intel.com>
Thu, 6 Apr 2017 15:26:35 +0000 (23:26 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Wed, 3 May 2017 14:13:31 +0000 (22:13 +0800)
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/common/perf_counters.cc
src/common/perf_counters.h

index c869880a1e2426539344189339b5d449a860a370..f5f0e09e1d23e6fc56e3128cca2d5b23d61a73e4 100644 (file)
@@ -241,7 +241,7 @@ uint64_t PerfCounters::get(int idx) const
   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;
@@ -252,15 +252,15 @@ void PerfCounters::tinc(int idx, utime_t amt)
   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;
@@ -271,9 +271,9 @@ void PerfCounters::tinc(int idx, ceph::timespan amt)
   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());
   }
index 11b616c353d305605dcfe52324d5e136f5364865..26ad4a6ffb5265a3fb50f9e4c3c77b6f3181d8ee 100644 (file)
@@ -159,8 +159,8 @@ public:
   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);