From: Hannes Reinecke <hare@suse.de>
To: Mike Christie <michaelc@cs.wisc.edu>
Cc: linux-scsi@vger.kernel.org, James Smart <james.smart@emulex.com>,
Andrew Vasquez <andrew.vasquez@qlogic.com>,
Chad Dupuis <chad.dupuis@qlogic.com>,
James Bottomley <jbottomley@parallels.com>
Subject: Re: [PATCH][RFC] scsi_transport_fc: Implement I_T nexus reset
Date: Sun, 09 Dec 2012 16:40:10 +0100 [thread overview]
Message-ID: <50C4B0DA.9090904@suse.de> (raw)
In-Reply-To: <50C23C5A.9090907@cs.wisc.edu>
Am 12/07/2012 07:58 PM, schrieb Mike Christie:
> On 12/07/2012 08:51 AM, Hannes Reinecke wrote:
>> 'Bus reset' is not really applicable to FibreChannel, as
>> the concept of a bus doesn't apply. Hence all FC LLDD
>> simulate a 'bus reset' by sending a target reset to each
>> attached remote port, causing error handling to spill
>> over to unaffected devices.
>>
>> This patch implements a 'I_T nexus reset' handler,
>> which attempts to reset the I_T nexus to the remote
>> port. This way only the affected remote ports are
>> reset; other ports are left untouched.
>
> Is the I_T nexus reset we are doing in this patch supposed to be the
> same one defined in SAM? Was the I_T nexus reset TMF added to SAM at the
> same time the target reset one was removed? In SAM 4 and 5 there is no
> target reset anymore is there?
>
> I think we should just kill the bus reset use from the FC drivers. Add a
> new I_T nexus reset callout to the scsi_host_template or to the
> scsi_transport_template. Then have scsi-ml call just either target reset
> eh callout or I_T nexus eh reset callout depending on what the target
> supports.
>
> To figure out what the target supports could we do a REPORTED SUPPORTED
> TASK MANAGEMENT FUNCTION command. If the target supports that command
> and reports that the target supports the I_T nexus reset TMF then call
> that eh callback, else drop down to older target reset eh callback.
>
> It seems that if we do I_T nexus reset we do not need to also do a
> target reset do we?
>
Hmm. I would rather check the actual LLDDs if they do anything sensible
for target reset.
If not we sure can remove it.
>
>
>> @@ -3266,8 +3271,8 @@ fc_timeout_fail_rport_io(struct work_struct *work)
>> if (rport->port_state != FC_PORTSTATE_BLOCKED)
>> return;
>>
>> - rport->flags |= FC_RPORT_FAST_FAIL_TIMEDOUT;
>> fc_terminate_rport_io(rport);
>> + rport->flags |= FC_RPORT_FAST_FAIL_TIMEDOUT;
>> }
>>
>
> What was the reason for moving this? For the eh case in this patch was
> it causing IO to be failed with DID_TRANSPORT_FAILFAST when we wanted it
> failed with some other error.
>
I wanted to ensure that fc_terminate_rport_io() was run when checking
FC_RPORT_FAST_FAIL_TIMEOUT.
Without the move there is a race window between clearing the flag and
calling fc_terminate_rport_io(), which one might trigger by just
checking the flag.
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@suse.de +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2012-12-09 13:40 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-07 14:51 [PATCH][RFC] scsi_transport_fc: Implement I_T nexus reset Hannes Reinecke
2012-12-07 18:58 ` Mike Christie
2012-12-07 19:58 ` Chad Dupuis
2012-12-07 21:05 ` Jeremy Linton
2012-12-07 21:20 ` Mike Christie
2012-12-07 22:33 ` Jeremy Linton
2012-12-10 10:18 ` Hannes Reinecke
2012-12-09 15:40 ` Hannes Reinecke [this message]
2012-12-09 23:19 ` Mike Christie
2012-12-09 23:31 ` Mike Christie
2012-12-10 2:27 ` Michael 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=50C4B0DA.9090904@suse.de \
--to=hare@suse.de \
--cc=andrew.vasquez@qlogic.com \
--cc=chad.dupuis@qlogic.com \
--cc=james.smart@emulex.com \
--cc=jbottomley@parallels.com \
--cc=linux-scsi@vger.kernel.org \
--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 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.