stat: assign for first stat iteration, don't sum
authorJens Axboe <axboe@kernel.dk>
Fri, 30 Nov 2018 21:44:25 +0000 (14:44 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 30 Nov 2018 21:44:25 +0000 (14:44 -0700)
Fixes: 70750d6a221f ("stat: only apply proper stat summing for event timestamps")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
stat.c

diff --git a/stat.c b/stat.c
index 10625c49e503c673cf3130e1625b73cda5b9459c..887509fe0a104a0f6b0ae804d33fcfc4026c82b3 100644 (file)
--- a/stat.c
+++ b/stat.c
@@ -1568,11 +1568,19 @@ static void sum_stat(struct io_stat *dst, struct io_stat *src, bool first,
                return;
        }
 
-       dst->min_val += src->min_val;
-       dst->max_val += src->max_val;
-       dst->samples += src->samples;
-       dst->mean.u.f += src->mean.u.f;
-       dst->S.u.f += src->S.u.f;
+       if (first) {
+               dst->min_val = src->min_val;
+               dst->max_val = src->max_val;
+               dst->samples = src->samples;
+               dst->mean.u.f = src->mean.u.f;
+               dst->S.u.f = src->S.u.f;
+       } else {
+               dst->min_val += src->min_val;
+               dst->max_val += src->max_val;
+               dst->samples += src->samples;
+               dst->mean.u.f += src->mean.u.f;
+               dst->S.u.f += src->S.u.f;
+       }
 }
 
 void sum_group_stats(struct group_run_stats *dst, struct group_run_stats *src)