From: "Ewan D. Milne" <emilne@redhat.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Hannes Reinecke <hare@suse.de>,
lsf@lists.linux-foundation.org,
"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
Jens Axboe <axboe@kernel.dk>, Christoph Hellwig <hch@lst.de>,
SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: [Lsf] [LSF/MM TOPIC] block-mq issues with FC
Date: Fri, 08 Apr 2016 11:51:13 -0400 [thread overview]
Message-ID: <1460130673.25335.51.camel@localhost.localdomain> (raw)
In-Reply-To: <1460128270.2340.13.camel@HansenPartnership.com>
On Fri, 2016-04-08 at 08:11 -0700, James Bottomley wrote:
> On Fri, 2016-04-08 at 13:29 +0200, Hannes Reinecke wrote:
> > Hi all,
> >
> > I'd like to propose a topic on block-mq issues with FC.
> > During my performance testing using block/scsi-mq with FC I've hit
> > several issues I'd like to discuss:
> >
> > - timeout handling:
> > Out of necessity the status of any timed out command is undefined.
> > So to be absolutely safe HBAs will be using extended timeouts here
> > (eg 70secs for lpfc). During that time we _could_ signal I/O timeout
> > to the upper layers, but then the tag will be reused, despite the
> > HBA still having a reference to it.
> > I'd like to discuss how this could be solved best with blk-mq.
>
> What's wrong with the obvious answer: the tag shouldn't be re-used
> until after at least the TMF abort. If we need to escalate that then
> it looks like the controller lost the tag and requires a bigger hammer.
>
> However, when I look at what we do, it seems the running abort handler
> is triggered from the block timeout function, so where's the problem?
> ... surely mq can't free the tag until that returns, because it might
> extend the time.
>
> James
There was some discussion a while back about whether we could decouple
the SCSI EH's recovery of the device from using the failed scmds, so
that once the disposition of the original I/O was determined (i.e. they
had succeeded, failed or timed out & aborted), the scmds could be
returned to a higher layer while the EH attempted to recover the
device. That way, in a multipath environment, we could submit the I/O
on working paths and avoid lengthy delays while we went through all the
resets.
We still need a successful abort after a timeout, but at least in the
above scenario we shouldn't be reusing the tags until the device is
recovered, as further I/O should be blocked while EH is running.
-Ewan
next prev parent reply other threads:[~2016-04-08 15:51 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-08 11:29 [LSF/MM TOPIC] block-mq issues with FC Hannes Reinecke
2016-04-08 15:11 ` James Bottomley
2016-04-08 15:51 ` Ewan D. Milne [this message]
2016-04-08 16:06 ` [Lsf] " James Bottomley
2016-04-08 17:26 ` Bart Van Assche
2016-04-08 17:40 ` Matthew Wilcox
2016-04-08 18:00 ` James Bottomley
2016-04-08 18:08 ` Christoph Hellwig
2016-04-08 18:24 ` James Bottomley
2016-04-08 18:06 ` Keith Busch
2016-04-12 19:16 ` Jens Axboe
2016-04-08 18:14 ` Bart Van Assche
2016-04-08 19:22 ` Waskiewicz, PJ
2016-04-10 19:02 ` Sagi Grimberg
2016-04-12 19:04 ` Quinn Tran
2016-04-08 18:13 ` Christoph Hellwig
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=1460130673.25335.51.camel@localhost.localdomain \
--to=emilne@redhat.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=axboe@kernel.dk \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lsf@lists.linux-foundation.org \
/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 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).