Commit d8b96a79 authored by Tang Yizhou's avatar Tang Yizhou Committed by Jens Axboe
Browse files

blk-wbt: Optimize wbt_done() for non-throttled writes



In the current implementation, the sync_cookie and last_cookie members of
struct rq_wb are used only by read requests and not by non-throttled write
requests. Based on this, we can optimize wbt_done() by removing one if
condition check for non-throttled write requests.

Signed-off-by: default avatarTang Yizhou <yizhou.tang@shopee.com>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Reviewed-by: default avatarYu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/20250727173959.160835-2-yizhou.tang@shopee.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 343dc542
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -248,13 +248,14 @@ static void wbt_done(struct rq_qos *rqos, struct request *rq)
	struct rq_wb *rwb = RQWB(rqos);

	if (!wbt_is_tracked(rq)) {
		if (wbt_is_read(rq)) {
			if (rwb->sync_cookie == rq) {
				rwb->sync_issue = 0;
				rwb->sync_cookie = NULL;
			}

		if (wbt_is_read(rq))
			wb_timestamp(rwb, &rwb->last_comp);
		}
	} else {
		WARN_ON_ONCE(rq == rwb->sync_cookie);
		__wbt_done(rqos, wbt_flags(rq));