From: Ming Lei <ming.lei@redhat.com>
To: Mike Snitzer <snitzer@redhat.com>
Cc: Bart Van Assche <Bart.VanAssche@wdc.com>,
"axboe@kernel.dk" <axboe@kernel.dk>,
"dm-devel@redhat.com" <dm-devel@redhat.com>,
"hch@infradead.org" <hch@infradead.org>,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"axboe@fb.com" <axboe@fb.com>,
"martin.petersen@oracle.com" <martin.petersen@oracle.com>
Subject: Re: [PATCH V3 0/5] dm-rq: improve sequential I/O performance
Date: Fri, 12 Jan 2018 11:33:09 +0800 [thread overview]
Message-ID: <20180112033308.GC25090@ming.t460p> (raw)
In-Reply-To: <20180112015721.GB32298@redhat.com>
On Thu, Jan 11, 2018 at 08:57:21PM -0500, Mike Snitzer wrote:
> On Thu, Jan 11 2018 at 8:42pm -0500,
> Ming Lei <ming.lei@redhat.com> wrote:
>
> > On Thu, Jan 11, 2018 at 10:37:37PM +0000, Bart Van Assche wrote:
> > > On Thu, 2018-01-11 at 17:07 -0500, Mike Snitzer wrote:
> > > > Bart, if for some reason we regress for some workload you're able to
> > > > more readily test we can deal with it. But I'm too encouraged by Ming's
> > > > performance improvements to hold these changes back any further.
> > >
> > > Sorry Mike but I think Ming's measurement results are not sufficient to
> > > motivate upstreaming of these patches. What I remember from previous versions
> > > of this patch series is that Ming measured the performance impact of this
> > > patch series only for the Emulex FC driver (lpfc). That driver limits queue
> > > depth to 3. Instead of modifying the dm code, that driver needs to be fixed
> > > such that it allows larger queue depths.
> > >
> > > Additionally, some time ago I had explained in detail why I think that patch
> > > 2/5 in this series is wrong and why it will introduce fairness regressions
> > > in multi-LUN workloads. I think we need performance measurements for this
> > > patch series for at least the following two configurations before this patch
> > > series can be considered for upstream inclusion:
> > > * The performance impact of this patch series for SCSI devices with a
> > > realistic queue depth (e.g. 64 or 128).
> >
> > Please look at the cover letter or patch 5's commit log, it mentions that
> > dm-mpath over virtio-scsi is tested, and the default queue depth of virito-scsi
> > is 128.
> >
> > > * The performance impact for this patch series for a SCSI host with which
> > > multiple LUNs are associated and for which the target system often replies
> > > with the SCSI "BUSY" status.
> >
> > I don't think this patch is related with this case, this patch just provides the
> > BUSY feedback from underlying queue to blk-mq via dm-rq.
>
> Hi Ming,
>
> Please see https://www.redhat.com/archives/dm-devel/2017-April/msg00190.html
>
> Specifically:
> "That patch [commit 6077c2d706] can be considered as a first step that
> can be refined further, namely by modifying the dm-rq code further such
> that dm-rq queues are only rerun after the busy condition has been
> cleared. The patch at the start of this thread is easier to review and
> easier to test than any patch that would only rerun dm-rq queues after
> the busy condition has been cleared."
>
> Do you have time to reason through Bart's previous proposal for how to
> better address the specific issue that was documented to be fixed in the
> header for commit 6077c2d706 ?
Hi Mike,
Recently we fixed one such issue in blk-mq (eb619fdb2d4cb8b3d34), and I
highly guess that may fix Bart's case.
Let's see this commit 6077c2d706 again, I don't know the idea behind the
fix, which just adds random of 100ms, and this delay degrades performance a
lot, since no hctx can be scheduled any more during the delay.
So again it is definitely a workaround, no any reasoning, no any theory, just
say it is a fix. Are there anyone who can explain the story?
IMO, the blk_get_request() in dm-mpath is just like a kmalloc(ATOMIC) which
is used in other blk-mq drivers' IO path too, so don't know why dm-mq is so
strange to require such ugly 100ms delay.
So I suggest to remove it, let's see if there are reports, and if there
are, I am quite confident we can root cause that and fix that.
>
> Otherwise I fear we'll just keep hitting a wall with Bart...
I do test dm-mq over scsi-debug which is setup as two LUNs, and set
can_queue as 1, and this patchset just works well, not any IO hang.
And anyone can try and play with it.
Thanks,
Ming
next prev parent reply other threads:[~2018-01-12 3:33 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-11 6:01 [PATCH V3 0/5] dm-rq: improve sequential I/O performance Ming Lei
2018-01-11 6:01 ` [PATCH V3 1/5] dm-mpath: don't call blk_mq_delay_run_hw_queue() in case of BLK_STS_RESOURCE Ming Lei
2018-01-11 6:01 ` [PATCH V3 2/5] dm-mpath: return DM_MAPIO_REQUEUE in case of rq allocation failure Ming Lei
2018-01-12 19:04 ` Bart Van Assche
2018-01-12 19:04 ` Bart Van Assche
2018-01-13 1:29 ` Ming Lei
2018-01-11 6:01 ` [PATCH V3 3/5] blk-mq: move actual issue into one helper Ming Lei
2018-01-11 22:09 ` Mike Snitzer
2018-01-11 6:01 ` [PATCH V3 4/5] blk-mq: return dispatch result to caller in blk_mq_try_issue_directly Ming Lei
2018-01-11 22:10 ` Mike Snitzer
2018-01-11 6:01 ` [PATCH V3 5/5] blk-mq: issue request directly for blk_insert_cloned_request Ming Lei
2018-01-11 22:42 ` Mike Snitzer
2018-01-11 22:07 ` [PATCH V3 0/5] dm-rq: improve sequential I/O performance Mike Snitzer
2018-01-11 22:37 ` Bart Van Assche
2018-01-11 22:37 ` Bart Van Assche
2018-01-11 22:58 ` Mike Snitzer
2018-01-11 23:27 ` Bart Van Assche
2018-01-11 23:27 ` Bart Van Assche
2018-01-12 1:43 ` Mike Snitzer
2018-01-12 1:42 ` Ming Lei
2018-01-12 1:57 ` Mike Snitzer
2018-01-12 3:33 ` Ming Lei [this message]
2018-01-12 17:18 ` Mike Snitzer
2018-01-12 17:26 ` Bart Van Assche
2018-01-12 17:26 ` Bart Van Assche
2018-01-12 17:40 ` Mike Snitzer
2018-01-12 17:46 ` Bart Van Assche
2018-01-12 17:46 ` Bart Van Assche
2018-01-12 18:06 ` Mike Snitzer
2018-01-12 18:54 ` Bart Van Assche
2018-01-12 18:54 ` Bart Van Assche
2018-01-12 19:29 ` Mike Snitzer
2018-01-12 19:53 ` Elliott, Robert (Persistent Memory)
2018-01-12 19:53 ` Elliott, Robert (Persistent Memory)
2018-01-13 0:52 ` Mike Snitzer
2018-01-13 1:00 ` Bart Van Assche
2018-01-13 1:00 ` Bart Van Assche
2018-01-13 1:37 ` Mike Snitzer
2018-01-13 15:14 ` Mike Snitzer
2018-01-12 22:31 ` Mike Snitzer
2018-01-13 15:04 ` Ming Lei
2018-01-13 15:04 ` Ming Lei
2018-01-13 15:10 ` Mike Snitzer
2018-01-12 23:17 ` Mike Snitzer
2018-01-12 23:42 ` Bart Van Assche
2018-01-12 23:42 ` Bart Van Assche
2018-01-13 0:45 ` Mike Snitzer
2018-01-13 14:34 ` Ming Lei
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=20180112033308.GC25090@ming.t460p \
--to=ming.lei@redhat.com \
--cc=Bart.VanAssche@wdc.com \
--cc=axboe@fb.com \
--cc=axboe@kernel.dk \
--cc=dm-devel@redhat.com \
--cc=hch@infradead.org \
--cc=linux-block@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=snitzer@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.