From b0b82c541577b44ed7da499de71f2414dae27f3a Mon Sep 17 00:00:00 2001 From: Baolin Wang Date: Thu, 8 Oct 2020 11:52:23 +0800 Subject: [PATCH 2103/2944] blk-throttle: Avoid getting the current time if tg->last_finish_time is 0 fix #30641350 commit 7901601aef35082d8431d05ab50a3567f7624b55 upstream We only update the tg->last_finish_time when the low limitaion is enabled, so we can move the tg->last_finish_time validation a little forward to avoid getting the unnecessary current time stamp if the the low limitation is not enabled. Signed-off-by: Baolin Wang Signed-off-by: Jens Axboe Reviewed-by: Joseph Qi --- block/blk-throttle.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 78e8b47..5160e86 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -2214,10 +2214,14 @@ static void throtl_downgrade_check(struct throtl_grp *tg) static void blk_throtl_update_idletime(struct throtl_grp *tg) { - unsigned long now = ktime_get_ns() >> 10; + unsigned long now; unsigned long last_finish_time = tg->last_finish_time; - if (now <= last_finish_time || last_finish_time == 0 || + if (last_finish_time == 0) + return; + + now = ktime_get_ns() >> 10; + if (now <= last_finish_time || last_finish_time == tg->checked_last_finish_time) return; -- 1.8.3.1