提交 abde73c7 编写于 作者: S Sahitya Tummala 提交者: Jaegeuk Kim

f2fs: fix unnecessary periodic wakeup of discard thread when dev is busy

When dev is busy, discard thread wake up timeout can be aligned with the
exact time that it needs to wait for dev to come out of busy. This helps
to avoid unnecessary periodic wakeups and thus save some power.
Signed-off-by: NSahitya Tummala <stummala@codeaurora.org>
Reviewed-by: NChao Yu <yuchao0@huawei.com>
Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
上级 7d20c8ab
无相关合并请求
......@@ -1564,6 +1564,8 @@ static int issue_discard_thread(void *data)
struct discard_policy dpolicy;
unsigned int wait_ms = DEF_MIN_DISCARD_ISSUE_TIME;
int issued;
unsigned long interval = sbi->interval_time[REQ_TIME] * HZ;
long delta;
set_freezable();
......@@ -1600,7 +1602,11 @@ static int issue_discard_thread(void *data)
__wait_all_discard_cmd(sbi, &dpolicy);
wait_ms = dpolicy.min_interval;
} else if (issued == -1){
wait_ms = dpolicy.mid_interval;
delta = (sbi->last_time[REQ_TIME] + interval) - jiffies;
if (delta > 0)
wait_ms = jiffies_to_msecs(delta);
else
wait_ms = dpolicy.mid_interval;
} else {
wait_ms = dpolicy.max_interval;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部