2019-12-20 06:17:51

by Wen Yang

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



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