ceph: use tracked average r/w/m latencies to display metrics in debugfs
authorVenky Shankar <vshankar@redhat.com>
Tue, 8 Mar 2022 12:42:19 +0000 (07:42 -0500)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 21 Mar 2022 12:35:16 +0000 (13:35 +0100)
Signed-off-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/debugfs.c

index 3cf7c9c1085b9121865885847eaec42478c6b465..bec3c4549c07dadfef8c416a2aa380e4b16275bc 100644 (file)
@@ -175,7 +175,7 @@ static int metrics_latency_show(struct seq_file *s, void *p)
        struct ceph_fs_client *fsc = s->private;
        struct ceph_client_metric *cm = &fsc->mdsc->metric;
        struct ceph_metric *m;
-       s64 total, sum, avg, min, max, sq;
+       s64 total, avg, min, max, sq;
        int i;
 
        seq_printf(s, "item          total       avg_lat(us)     min_lat(us)     max_lat(us)     stdev(us)\n");
@@ -185,8 +185,7 @@ static int metrics_latency_show(struct seq_file *s, void *p)
                m = &cm->metric[i];
                spin_lock(&m->lock);
                total = m->total;
-               sum = m->latency_sum;
-               avg = total > 0 ? DIV64_U64_ROUND_CLOSEST(sum, total) : 0;
+               avg = m->latency_avg;
                min = m->latency_min;
                max = m->latency_max;
                sq = m->latency_sq_sum;