diff --git a/src/common/perf_timer.cpp b/src/common/perf_timer.cpp
index d287949ba..fc51dc7f7 100644
--- a/src/common/perf_timer.cpp
+++ b/src/common/perf_timer.cpp
@@ -165,4 +165,20 @@ void PerformanceTimer::resume()
   paused = false;
 }
 
+void PerformanceTimer::reset()
+{
+  if (paused)
+    ticks = 0;
+  else
+    ticks = get_tick_count();
+}
+
+uint64_t PerformanceTimer::value() const
+{
+  uint64_t v = ticks;
+  if (!paused)
+    v = get_tick_count() - v;
+  return ticks_to_ns(v);
+}
+
 }
diff --git a/src/common/perf_timer.h b/src/common/perf_timer.h
index 584434a0d..c33aaae12 100644
--- a/src/common/perf_timer.h
+++ b/src/common/perf_timer.h
@@ -51,8 +51,8 @@ public:
   ~PerformanceTimer();
   void pause();
   void resume();
-
-  uint64_t value() const { return ticks; }
+  void reset();
+  uint64_t value() const;
 
 protected:
   uint64_t ticks;