]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: switch op_lat sample_sum from ms to us
authorMatan Breizman <mbreizma@redhat.com>
Thu, 4 Jun 2026 09:39:11 +0000 (09:39 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Thu, 4 Jun 2026 09:39:11 +0000 (09:39 +0000)
Sub-ms ops rounded to zero under the old millisecond cast, making
the average meaningless for fast NVMe workloads. sample_sum is now
in microseconds; divide by 1000 for ms average.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/crimson/os/seastore/seastore.h

index eae23b4525a58f8085bd85c88f81f7bd9394a8c6..54dd67c783fdff7e8c41c4268721244ed2d19344 100644 (file)
@@ -451,11 +451,12 @@ public:
     void add_latency_sample(op_type_t op_type,
         std::chrono::steady_clock::duration dur) {
       seastar::metrics::histogram& lat = get_latency(op_type);
+      auto us = std::chrono::duration_cast<std::chrono::microseconds>(dur).count();
       lat.sample_count++;
-      lat.sample_sum += std::chrono::duration_cast<std::chrono::milliseconds>(dur).count();
+      lat.sample_sum += us;
       bool found = false;
       for (auto& b : lat.buckets) {
-        if (static_cast<double>(std::chrono::duration_cast<std::chrono::microseconds>(dur).count()) <= b.upper_bound) {
+        if (static_cast<double>(us) <= b.upper_bound) {
           ++b.count;
           found = true;
           break;