Commit b185efa7 authored by Baolin Wang's avatar Baolin Wang Committed by Jens Axboe
Browse files

blk-throttle: Avoid tracking latency if low limit is invalid



The IO latency tracking is only for LOW limit, so we should add a
validation to avoid redundant latency tracking if the LOW limit
is not valid.

Signed-off-by: default avatarBaolin Wang <baolin.wang@linux.alibaba.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 7901601a
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -2100,7 +2100,7 @@ static void throtl_update_latency_buckets(struct throtl_data *td)
	unsigned long last_latency[2] = { 0 };
	unsigned long last_latency[2] = { 0 };
	unsigned long latency[2];
	unsigned long latency[2];


	if (!blk_queue_nonrot(td->queue))
	if (!blk_queue_nonrot(td->queue) || !td->limit_valid[LIMIT_LOW])
		return;
		return;
	if (time_before(jiffies, td->last_calculate_time + HZ))
	if (time_before(jiffies, td->last_calculate_time + HZ))
		return;
		return;
@@ -2338,6 +2338,8 @@ void blk_throtl_bio_endio(struct bio *bio)
	if (!blkg)
	if (!blkg)
		return;
		return;
	tg = blkg_to_tg(blkg);
	tg = blkg_to_tg(blkg);
	if (!tg->td->limit_valid[LIMIT_LOW])
		return;


	finish_time_ns = ktime_get_ns();
	finish_time_ns = ktime_get_ns();
	tg->last_finish_time = finish_time_ns >> 10;
	tg->last_finish_time = finish_time_ns >> 10;