summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLin Feng <linf@wangsu.com>2021-04-15 05:43:26 +0200
committerJens Axboe <axboe@kernel.dk>2021-04-16 14:08:52 +0200
commit7687b38ae470f01749e420079c36cccb24b8619a (patch)
treec650eec206afe0912baeaf2b2bdbf51533eace6c
parentblk-mq: bypass IO scheduler's limit_depth for passthrough request (diff)
downloadlinux-7687b38ae470f01749e420079c36cccb24b8619a.tar.xz
linux-7687b38ae470f01749e420079c36cccb24b8619a.zip
bfq/mq-deadline: remove redundant check for passthrough request
Since commit 01e99aeca39796003 'blk-mq: insert passthrough request into hctx->dispatch directly', passthrough request should not appear in IO-scheduler any more, so blk_rq_is_passthrough checking in addon IO schedulers is redundant. (Notes: this patch passes generic IO load test with hdds under SAS controller and hdds under AHCI controller but obviously not covers all. Not sure if passthrough request can still escape into IO scheduler from blk_mq_sched_insert_requests, which is used by blk_mq_flush_plug_list and has lots of indirect callers.) Signed-off-by: Lin Feng <linf@wangsu.com> Reviewed-by: Ming Lei <ming.lei@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--block/bfq-iosched.c3
-rw-r--r--block/mq-deadline.c7
2 files changed, 3 insertions, 7 deletions
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index 9b7678ad5830..0270cd7ca165 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -5957,8 +5957,7 @@ static void bfq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
bfqd->in_service_queue != NULL &&
bfq_tot_busy_queues(bfqd) == 1 + bfq_bfqq_busy(bfqq) &&
(bfqq->waker_bfqq == bfqd->in_service_queue ||
- bfqd->in_service_queue->waker_bfqq == bfqq)) ||
- at_head || blk_rq_is_passthrough(rq)) {
+ bfqd->in_service_queue->waker_bfqq == bfqq)) || at_head) {
if (at_head)
list_add(&rq->queuelist, &bfqd->dispatch);
else
diff --git a/block/mq-deadline.c b/block/mq-deadline.c
index f3631a287466..04aded71ead2 100644
--- a/block/mq-deadline.c
+++ b/block/mq-deadline.c
@@ -500,11 +500,8 @@ static void dd_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
trace_block_rq_insert(rq);
- if (at_head || blk_rq_is_passthrough(rq)) {
- if (at_head)
- list_add(&rq->queuelist, &dd->dispatch);
- else
- list_add_tail(&rq->queuelist, &dd->dispatch);
+ if (at_head) {
+ list_add(&rq->queuelist, &dd->dispatch);
} else {
deadline_add_rq_rb(dd, rq);