diff options
| author | Nilay Shroff <nilay@linux.ibm.com> | 2025-08-14 13:54:57 +0530 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-08-28 16:34:50 +0200 |
| commit | e74191a23a7fab5a5e931b558e8c3865ae8f4a4b (patch) | |
| tree | 715fe6cd7d49c218b1a8fd9062ea7e1c91ddedee | |
| parent | a277d8870a6c3a3d15b1b647c5f73ac1e6b7047f (diff) | |
| download | linux-e74191a23a7fab5a5e931b558e8c3865ae8f4a4b.tar.gz linux-e74191a23a7fab5a5e931b558e8c3865ae8f4a4b.tar.bz2 linux-e74191a23a7fab5a5e931b558e8c3865ae8f4a4b.zip | |
block: skip q->rq_qos check in rq_qos_done_bio()
[ Upstream commit 275332877e2fa9d6efa7402b1e897f6c6ee695bb ]
If a bio has BIO_QOS_THROTTLED or BIO_QOS_MERGED set,
it implicitly guarantees that q->rq_qos is present.
Avoid re-checking q->rq_qos in this case and call
__rq_qos_done_bio() directly as a minor optimization.
Suggested-by : Yu Kuai <yukuai1@huaweicloud.com>
Signed-off-by: Nilay Shroff <nilay@linux.ibm.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/20250814082612.500845-2-nilay@linux.ibm.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Stable-dep-of: 370ac285f23a ("block: avoid cpu_hotplug_lock depedency on freeze_lock")
Signed-off-by: Sasha Levin <sashal@kernel.org>
| -rw-r--r-- | block/blk-rq-qos.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/block/blk-rq-qos.h b/block/blk-rq-qos.h index 39749f4066fb..28125fc49eff 100644 --- a/block/blk-rq-qos.h +++ b/block/blk-rq-qos.h @@ -142,8 +142,14 @@ static inline void rq_qos_done_bio(struct bio *bio) bio->bi_bdev && (bio_flagged(bio, BIO_QOS_THROTTLED) || bio_flagged(bio, BIO_QOS_MERGED))) { struct request_queue *q = bdev_get_queue(bio->bi_bdev); - if (q->rq_qos) - __rq_qos_done_bio(q->rq_qos, bio); + + /* + * If a bio has BIO_QOS_xxx set, it implicitly implies that + * q->rq_qos is present. So, we skip re-checking q->rq_qos + * here as an extra optimization and directly call + * __rq_qos_done_bio(). + */ + __rq_qos_done_bio(q->rq_qos, bio); } } |
