All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Christie <michaelc@cs.wisc.edu>
To: Hannes Reinecke <hare@suse.de>
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: Fri, 07 Dec 2012 12:58:34 -0600	[thread overview]
Message-ID: <50C23C5A.9090907@cs.wisc.edu> (raw)
In-Reply-To: <1354891880-16159-1-git-send-email-hare@suse.de>

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?



> @@ -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.


  reply	other threads:[~2012-12-07 19:00 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 [this message]
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
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=50C23C5A.9090907@cs.wisc.edu \
    --to=michaelc@cs.wisc.edu \
    --cc=andrew.vasquez@qlogic.com \
    --cc=chad.dupuis@qlogic.com \
    --cc=hare@suse.de \
    --cc=james.smart@emulex.com \
    --cc=jbottomley@parallels.com \
    --cc=linux-scsi@vger.kernel.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 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.