From: James Smart <James.Smart@Emulex.Com>
To: Michael Reed <mdr@sgi.com>
Cc: Mike Christie <michaelc@cs.wisc.edu>,
linux-scsi@vger.kernel.org,
Andrew Vasquez <andrew.vasquez@qlogic.com>,
aherrman@de.ibm.com, Christoph Hellwig <hch@infradead.org>,
duane.grigsby@qlogic.com, "Moore,
Eric Dean" <Eric.Moore@lsil.com>,
"Shirron, Stephen" <Stephen.Shirron@lsil.com>,
Jeremy Higdon <jeremy@sgi.com>
Subject: Re: [RFC] fc transport: extensions for fast fail and dev loss
Date: Tue, 25 Jul 2006 23:33:53 -0400 [thread overview]
Message-ID: <44C6E2A1.7070609@emulex.com> (raw)
In-Reply-To: <44C689E1.7030709@sgi.com>
Michael Reed wrote:
> Haven't most drivers / board firmware generally cleaned up any outstanding
> i/o at the time (or shortly thereafter) of the fc_remote_port_delete()
> call? I would think it reasonable to just require that the driver clean
> up the i/o after calling fc_remote_port_delete(). Is there a significant
> reason to keep the i/o alive in the driver? The rport has just been
> deleted.... Would this eliminate the need for the callback? If the
> driver implements this, could it just have a NULL callback routine?
You don't want to kill i/o at the time that the rport loses
connectivity (e.g. when we call delete). The biggest reason is for devices
that support FCP Recovery (Tape being a prime example, but it's not limited
to them). There are also several topology glitches, which can be seconds
in length, which are abberant, and really didn't reflect true device loss.
Why kill and reissue these io's as well ? it really just adds more load to
the system to abort and retry the i/o's. Also, FC-DA compliance is
recommending that the login and the exchanges stay around as long as
possible (you could argue the diagram mandates it). So, for the best
"FC behavior" you really shouldn't kill the i/o until dev_loss_tmo fires.
-- james s
PS: I think you're highlighting my complaint with the patch. I should
be renaming the "delete" function as it really isn't delete. The rport
isn't truly "deleted" until dev_loss_tmo fires. We didn't consider
this when we dropped the block/unblock_rport routines in favor of the
more straight-forward add/delete calls. At this point, I'd rather
document the lifetime in the api/header than deal with namechanges and
its affects on drivers/distros.
next prev parent reply other threads:[~2006-07-26 3:42 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-20 18:45 [RFC] fc transport: extensions for fast fail and dev loss James Smart
2006-07-25 17:12 ` Mike Christie
2006-07-25 18:49 ` James Smart
2006-07-25 21:15 ` Michael Reed
2006-07-26 3:33 ` James Smart [this message]
2006-07-26 9:20 ` Christoph Hellwig
2006-07-26 16:35 ` James Smart
2006-08-08 17:54 ` [RFC] [Last Rites] " James Smart
2006-08-08 21:56 ` Michael Reed
2006-08-08 22:15 ` Michael Reed
2006-08-09 15:31 ` Michael Reed
2006-08-10 16:38 ` James Smart
2006-08-09 17:36 ` Christoph Hellwig
2006-08-10 16:17 ` James Smart
2006-08-10 20:01 ` Mike Christie
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=44C6E2A1.7070609@emulex.com \
--to=james.smart@emulex.com \
--cc=Eric.Moore@lsil.com \
--cc=Stephen.Shirron@lsil.com \
--cc=aherrman@de.ibm.com \
--cc=andrew.vasquez@qlogic.com \
--cc=duane.grigsby@qlogic.com \
--cc=hch@infradead.org \
--cc=jeremy@sgi.com \
--cc=linux-scsi@vger.kernel.org \
--cc=mdr@sgi.com \
--cc=michaelc@cs.wisc.edu \
/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