From: Jianchao Wang <jianchao.w.wang@oracle.com> To: axboe@kernel.dk Cc: ming.lei@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH V6 4/5] blk-mq: issue directly with bypass 'false' in blk_mq_sched_insert_requests Date: Tue, 13 Nov 2018 17:56:55 +0800 [thread overview] Message-ID: <1542103016-21037-5-git-send-email-jianchao.w.wang@oracle.com> (raw) In-Reply-To: <1542103016-21037-1-git-send-email-jianchao.w.wang@oracle.com> It is not necessary to issue request directly with bypass 'true' in blk_mq_sched_insert_requests and handle the non-issued requests itself. Just set bypass to 'false' and let blk_mq_try_issue_directly handle them totally. Signed-off-by: Jianchao Wang <jianchao.w.wang@oracle.com> --- block/blk-mq-sched.c | 8 +++----- block/blk-mq.c | 13 +++---------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c index 66fda19..9af57c8 100644 --- a/block/blk-mq-sched.c +++ b/block/blk-mq-sched.c @@ -410,12 +410,10 @@ void blk_mq_sched_insert_requests(struct blk_mq_hw_ctx *hctx, * busy in case of 'none' scheduler, and this way may save * us one extra enqueue & dequeue to sw queue. */ - if (!hctx->dispatch_busy && !e && !run_queue_async) { + if (!hctx->dispatch_busy && !e && !run_queue_async) blk_mq_try_issue_list_directly(hctx, list); - if (list_empty(list)) - return; - } - blk_mq_insert_requests(hctx, ctx, list); + else + blk_mq_insert_requests(hctx, ctx, list); } blk_mq_run_hw_queue(hctx, run_queue_async); diff --git a/block/blk-mq.c b/block/blk-mq.c index 58f15cc..f41a815 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1855,21 +1855,14 @@ blk_status_t blk_mq_request_issue_directly(struct request *rq) void blk_mq_try_issue_list_directly(struct blk_mq_hw_ctx *hctx, struct list_head *list) { + blk_qc_t unused_cookie; + while (!list_empty(list)) { - blk_status_t ret; struct request *rq = list_first_entry(list, struct request, queuelist); list_del_init(&rq->queuelist); - ret = blk_mq_request_issue_directly(rq); - if (ret != BLK_STS_OK) { - if (ret == BLK_STS_RESOURCE || - ret == BLK_STS_DEV_RESOURCE) { - list_add(&rq->queuelist, list); - break; - } - blk_mq_end_request(rq, ret); - } + blk_mq_try_issue_directly(hctx, rq, &unused_cookie, false); } } -- 2.7.4
next prev parent reply other threads:[~2018-11-13 9:57 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-11-13 9:56 [PATCH V6 0/5] blk-mq: refactor and fix on issue request directly Jianchao Wang 2018-11-13 9:56 ` [PATCH V6 1/5] blk-mq: refactor the code of " Jianchao Wang 2018-11-13 9:56 ` [PATCH V6 2/5] blk-mq: fix issue directly case when q is stopped or quiesced Jianchao Wang 2018-11-13 9:56 ` [PATCH V6 3/5] blk-mq: ensure hctx to be ran on mapped cpu when issue directly Jianchao Wang 2018-11-13 13:44 ` Jens Axboe 2018-11-14 2:15 ` jianchao.wang 2018-11-14 3:02 ` Ming Lei 2018-11-14 3:38 ` jianchao.wang 2018-11-13 9:56 ` Jianchao Wang [this message] 2018-11-13 9:56 ` [PATCH V6 5/5] blk-mq: replace and kill blk_mq_request_issue_directly Jianchao Wang
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1542103016-21037-5-git-send-email-jianchao.w.wang@oracle.com \ --to=jianchao.w.wang@oracle.com \ --cc=axboe@kernel.dk \ --cc=linux-block@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=ming.lei@redhat.com \ --subject='Re: [PATCH V6 4/5] blk-mq: issue directly with bypass '\''false'\'' in blk_mq_sched_insert_requests' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).