blk-iolatency: truncate our current time
authorJosef Bacik <jbacik@fb.com>
Mon, 16 Jul 2018 16:12:23 +0000 (12:12 -0400)
committerJens Axboe <axboe@kernel.dk>
Mon, 16 Jul 2018 16:15:19 +0000 (10:15 -0600)
In our longer tests we noticed that some boxes would degrade to the
point of uselessness.  This is because we truncate the current time when
saving it in our bio, but I was using the raw current time to subtract
from.  So once the box had been up a certain amount of time it would
appear as if our IO's were taking several years to complete.  Fix this
by truncating the current time so it matches the issue time.  Verified
this worked by running with this patch for a week on our test tier.

Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-iolatency.c

index 893f888eebb1a161c1a8234ac5e098f0622d131f..bb59b2929e0d96bb8fe949f4e267a6947687b16f 100644 (file)
@@ -425,6 +425,12 @@ static void iolatency_record_time(struct iolatency_grp *iolat,
        u64 start = bio_issue_time(issue);
        u64 req_time;
 
+       /*
+        * Have to do this so we are truncated to the correct time that our
+        * issue is truncated to.
+        */
+       now = __bio_issue_time(now);
+
        if (now <= start)
                return;