All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Herrmann <aherrman@web.de>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: Linux SCSI <linux-scsi@vger.kernel.org>, aherrman@de.ibm.com
Subject: Re: [PATCH 1/7] zfcp: introduce eh_timed_out handler
Date: Sun, 04 Sep 2005 12:34:39 +0200	[thread overview]
Message-ID: <431ACDBF.3020001@web.de> (raw)

On Sat, 2005-09-03 13:45:01, James Bottomley wrote:
   > But that's not what the patch does.  It short circuits the error
   > handler
   > globally, not just in the cable pulled case.

   > For any error induced timeout, you're going to follow this logic. In
   > particular, if the device itself actually has an issue and genuinely
   > needs to be reset, that's never going to happen.

Ok, I aggree. It is short-sighted to introduce the patch. I was
totally focusing on a multipath setup and the cable pull case.

Now there is still the question how do prevent the SCSI stack from
taking SCSI devices offline if dm-multipath is used.

The target should be to re-enable paths if they come up again.  But
this just works if the SCSI device is online. This is required for
instance by multipathd to succesfully check the paths (e.g. using TUR
checker).

To "short circuit the error handler globally" is wrong. So how about
changing error handling while running
scsi_unjam_host/scsi_eh_ready_devs.  The problem that I observed is
that the timed out scsi command is kept in work_q and not moved to
done_q before scsi_eh_offline_sdevs is called.  How about moving all
scsi commands to done_q if blk_noretry_request(scmd->reqeust) is true
before scsi_eh_offline_sdevs is called, e.g. changing
scsi_eh_ready_devs to something like:

	if (!scsi_device_online(...))
	   if (!scsi_eh_bus_device_reset(...))
	      if (!scsi_eh_bus_reset(...))
		 if (!scsi_eh_host_reset(...))
		    if (!scsi_eh_move_blk_noretry_requests(...))
		       scsi_eh_offline_sdevs(...);

or as an alternative perform the move from work_q to done_q in one
(which?) of the reset functions.

   > Is this really what you want to do?

No, I don't.


Regards,

Andreas

PS: sorry for using this alternate email account


             reply	other threads:[~2005-09-04 10:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-04 10:34 Andreas Herrmann [this message]
  -- strict thread matches above, loose matches on Subject: below --
2005-09-04 10:49 [PATCH 1/7] zfcp: introduce eh_timed_out handler Andreas Herrmann
2005-09-04 10:37 Andreas Herrmann
2005-09-03 13:21 Andreas Herrmann
2005-09-03 12:30 Andreas Herrmann
2005-09-03 12:56 ` Arjan van de Ven
2005-09-03 13:45 ` James Bottomley
2005-09-03 14:53 ` 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=431ACDBF.3020001@web.de \
    --to=aherrman@web.de \
    --cc=James.Bottomley@SteelEye.com \
    --cc=aherrman@de.ibm.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.