From: Mike Snitzer <snitzer@redhat.com>
To: Ming Lei <ming.lei@redhat.com>
Cc: Jens Axboe <axboe@fb.com>,
linux-block@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>
Subject: Re: [PATCH V4 3/3] blk-mq: issue request directly for blk_insert_cloned_request
Date: Mon, 15 Jan 2018 20:34:38 -0500 [thread overview]
Message-ID: <20180116013437.GA27125@redhat.com> (raw)
In-Reply-To: <20180115165810.2515-4-ming.lei@redhat.com>
On Mon, Jan 15 2018 at 11:58am -0500,
Ming Lei <ming.lei@redhat.com> wrote:
> blk_insert_cloned_request() is called in fast path of dm-rq driver, and
> in this function we append request to hctx->dispatch_list of the underlying
> queue directly.
>
> 1) This way isn't efficient enough because hctx lock is always required
>
> 2) With blk_insert_cloned_request(), we bypass underlying queue's IO scheduler
> totally, and depend on DM rq driver to do IO schedule completely. But DM
> rq driver can't get underlying queue's dispatch feedback at all, and this
> information is extreamly useful for IO merge. Without that IO merge can't
> be done basically by blk-mq, and causes very bad sequential IO performance.
>
> This patch makes use of blk_mq_try_issue_directly() to dispatch rq to
> underlying queue and provides disptch result to dm-rq and blk-mq, and
> improves the above situations very much.
>
> With this patch, seqential IO is improved by 3X in my test over
> mpath/virtio-scsi.
>
> Signed-off-by: Ming Lei <ming.lei@redhat.com>
> ---
> block/blk-mq.c | 29 ++++++++++++++++++++++++++---
> 1 file changed, 26 insertions(+), 3 deletions(-)
Hey Ming,
I also just noticed your V4 of this patch only includes the
block/blk-mq.c changes.
You're missing:
block/blk-core.c | 3 +--
block/blk-mq.h | 3 +++
drivers/md/dm-rq.c | 19 +++++++++++++---
Please let Jens know if you're OK with my V4, tagged here:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/tag/?h=for-block-4.16/dm-changes-2
And also detailed in this message from earlier in this thread:
https://marc.info/?l=linux-block&m=151603824725438&w=2
Or please generate V5 of your series. Hopefully it'd include the header
I revised for this 3/3 patch, see:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-block-4.16/dm-changes-2&id=d86beab5712a8f18123011487dee797a1e3a07e1
We also need to address the issues Jens noticed and I looked at a bit
closer: https://marc.info/?l=linux-block&m=151604528127707&w=2
(those issues might need fixing first, and marked for stable@, and the
series rebased ontop of it?)
Thanks!
Mie
next prev parent reply other threads:[~2018-01-16 1:34 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-15 16:58 [PATCH V4 0/3] blk-mq: issue request directly for blk_insert_cloned_request Ming Lei
2018-01-15 16:58 ` [PATCH V4 1/3] blk-mq: move actual issue into one helper Ming Lei
2018-01-15 17:15 ` Mike Snitzer
2018-01-16 1:36 ` Ming Lei
2018-01-15 17:29 ` Jens Axboe
2018-01-15 19:41 ` Mike Snitzer
2018-01-16 1:43 ` Ming Lei
2018-01-16 1:45 ` Mike Snitzer
2018-01-16 1:40 ` Ming Lei
2018-01-16 4:05 ` Ming Lei
2018-01-15 16:58 ` [PATCH V4 2/3] blk-mq: return dispatch result to caller in blk_mq_try_issue_directly Ming Lei
2018-01-15 16:58 ` [PATCH V4 3/3] blk-mq: issue request directly for blk_insert_cloned_request Ming Lei
2018-01-16 1:34 ` Mike Snitzer [this message]
2018-01-15 17:43 ` [PATCH V4 0/3] " Mike Snitzer
2018-01-16 1:57 ` Ming Lei
2018-01-16 15:01 ` [for-4.16 PATCH v4-mike 1/2] blk-mq: return dispatch result from blk_mq_try_issue_directly Mike Snitzer
2018-01-16 15:01 ` [for-4.16 PATCH v4-mike 2/2] blk-mq: issue request directly for blk_insert_cloned_request Mike Snitzer
2018-01-16 16:41 ` Mike Snitzer
2018-01-16 17:20 ` Jens Axboe
2018-01-16 17:38 ` Mike Snitzer
2018-01-16 17:41 ` Jens Axboe
2018-01-16 18:16 ` Mike Snitzer
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=20180116013437.GA27125@redhat.com \
--to=snitzer@redhat.com \
--cc=axboe@fb.com \
--cc=hch@infradead.org \
--cc=linux-block@vger.kernel.org \
--cc=ming.lei@redhat.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.