Re: [PATCH] block: make the io_ticks counter more accurate

From: Wen Yang
Date: Fri Dec 20 2019 - 01:17:01 EST




On 2019/12/18 9:28 äå, Jens Axboe wrote:
On 12/17/19 7:28 AM, Wen Yang wrote:
Instead of the jiffies, we should update the io_ticks counter
with the passed in parameter 'now'.

But they are not the same clock source...


Hi Jens,
Thanks for your comments.
We plan to change it to the following version,
please kindly help with some suggestions.
Thank you.


diff --git a/block/blk-core.c b/block/blk-core.c
index 379f6f5..da7de9f 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1365,7 +1365,7 @@ void blk_account_io_done(struct request *req, u64 now)
part_stat_lock();
part = req->part;

- update_io_ticks(part, jiffies);
+ update_io_ticks(part, nsecs_to_jiffies(now));
part_stat_inc(part, ios[sgrp]);
part_stat_add(part, nsecs[sgrp], now - req->start_time_ns);
part_stat_add(part, time_in_queue, nsecs_to_jiffies64(now - req->start_time_ns));
@@ -1407,7 +1407,7 @@ void blk_account_io_start(struct request *rq, bool new_io)
rq->part = part;
}

- update_io_ticks(part, jiffies);
+ update_io_ticks(part, nsecs_to_jiffies(ktime_get_ns()));

part_stat_unlock();
}
--
1.8.3.1


--
Best Regards,
Wen