public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: KY Srinivasan <kys@microsoft.com>
Cc: "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"jasowang@redhat.com" <jasowang@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"jbottomley@parallels.com" <jbottomley@parallels.com>,
	"ohering@suse.com" <ohering@suse.com>,
	Christoph Hellwig <hch@infradead.org>,
	"apw@canonical.com" <apw@canonical.com>,
	"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>
Subject: Re: [PATCH 6/8] Drivers: scsi: storvsc: Implement an abort handler
Date: Thu, 10 Jul 2014 03:13:20 -0700	[thread overview]
Message-ID: <20140710101320.GB1151@infradead.org> (raw)
In-Reply-To: <9b76360fb30745d3941b6d56bdae268f@BY2PR03MB299.namprd03.prod.outlook.com>

On Wed, Jul 09, 2014 at 06:51:38PM +0000, KY Srinivasan wrote:
> On Azure, we sometimes have unbounded I/O latencies and some distributions
> (such as SLES12) based on recent kernels are invoking the "Abort Handler".

Any kernel will invoke the abort handler if present, and then escalate
to the various resets.

> Unfortunately, our scsi emulation on the host does not support aborting 
> a command. The issue I have seen is that the upper level scsi code attempts
> error recovery when the command times out and finally frees up the command.
> The host subsequently responds to the command that has timed out and since
> the memory has been freed up, we end up touching freed memory in this
> driver. Since the host is also doing error recovery, by just delaying the
> error handler in the guest until we can account for all the in-flight 
> commands, we can get around the problem.

The storvsc driver does implement an bus reset error handler, and
after that completes successfully the midlayer frees the commands,
and the driver has to deal with this and not call scsi_done after
the reset finished (normally you'd expect the hardware to not complete
requests after an reset).

Note that you could increase the timeout and/or implement an
eh_timed_out handler that just returns BLK_EH_RESET_TIMER, but if the
completion takes too long the expectation is that a command will
eventually finish instead of beeing delayed by an unmound amount.

  reply	other threads:[~2014-07-10 10:13 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-09  0:46 [PATCH 0/8] Drivers: scsi: storvsc: Bug fixes and improvements K. Y. Srinivasan
2014-07-09  0:46 ` [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host K. Y. Srinivasan
2014-07-09  0:46   ` [PATCH 2/8] Drivers: scsi: storvsc: Filter commands based on the storage protocol version K. Y. Srinivasan
2014-07-09  8:40     ` Christoph Hellwig
2014-07-09 20:02       ` KY Srinivasan
2014-07-09  0:46   ` [PATCH 3/8] Drivers: scsi: storvsc: Fix a bug in handling VMBUS " K. Y. Srinivasan
2014-07-09  8:41     ` Christoph Hellwig
2014-07-09 20:01       ` KY Srinivasan
2014-07-09  0:46   ` [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16 K. Y. Srinivasan
2014-07-09  8:43     ` Christoph Hellwig
2014-07-09 19:52       ` KY Srinivasan
2014-07-09 19:56         ` James Bottomley
2014-07-09 21:14           ` KY Srinivasan
2014-07-09 22:27             ` James Bottomley
2014-07-09 22:36               ` KY Srinivasan
2014-07-10 10:07                 ` hch
2014-07-10 21:02               ` KY Srinivasan
2014-07-10 22:12                 ` James Bottomley
2014-07-11  6:32               ` hch
2014-07-11 12:54                 ` Martin K. Petersen
2014-07-12  2:53                   ` KY Srinivasan
2014-07-12  2:50                 ` KY Srinivasan
2014-07-13 12:58                   ` Martin K. Petersen
2014-07-13 18:49                     ` KY Srinivasan
2014-07-14  2:37                     ` KY Srinivasan
2014-07-14  3:19                       ` KY Srinivasan
2014-07-16 11:01                     ` hch
2014-07-16 14:53                       ` James Bottomley
2014-07-16 15:44                       ` Martin K. Petersen
2014-07-16 17:38                         ` hch
2014-07-16 17:47                           ` Martin K. Petersen
2014-07-16 17:55                             ` hch
2014-07-16 18:02                             ` James Bottomley
2014-07-16 18:43                               ` Elliott, Robert (Server Storage)
2014-07-16 19:20                                 ` Martin K. Petersen
2014-07-17  7:42                                   ` hch
2014-07-17 12:41                                     ` Martin K. Petersen
2014-07-16 18:45                               ` Martin K. Petersen
2014-07-16 18:50                                 ` James Bottomley
2014-07-16 19:08                                   ` Martin K. Petersen
2014-07-16 19:14                                     ` James Bottomley
2014-07-16 19:44                                       ` Martin K. Petersen
2014-07-09  0:46   ` [PATCH 5/8] Drivers: scsi: storvsc: Fix a bug in the handling of SRB status flags K. Y. Srinivasan
2014-07-09  8:43     ` Christoph Hellwig
2014-07-09  0:46   ` [PATCH 6/8] Drivers: scsi: storvsc: Implement an abort handler K. Y. Srinivasan
2014-07-09  8:44     ` Christoph Hellwig
2014-07-09 18:51       ` KY Srinivasan
2014-07-10 10:13         ` Christoph Hellwig [this message]
2014-07-10 22:26           ` KY Srinivasan
2014-07-11  9:52             ` Hannes Reinecke
2014-07-11  9:54               ` Christoph Hellwig
2014-07-11 14:49               ` KY Srinivasan
2014-07-10 10:33         ` Richard Weinberger
2014-07-12 16:16           ` Richard Weinberger
2014-07-12 16:35             ` KY Srinivasan
2014-07-09  0:46   ` [PATCH 7/8] drivers: scsi: storvsc: Set srb_flags in all cases K. Y. Srinivasan
2014-07-09  8:44     ` Christoph Hellwig
2014-07-09 18:40       ` KY Srinivasan
2014-07-10 10:17         ` Christoph Hellwig
2014-07-10 22:22           ` KY Srinivasan
2014-07-10 10:18     ` Christoph Hellwig
2014-07-11 21:03       ` KY Srinivasan
2014-07-09  0:46   ` [PATCH 8/8] drivers: scsi: storvsc: Correctly handle TEST_UNIT_READY failure K. Y. Srinivasan
2014-07-09  8:46     ` Christoph Hellwig
2014-07-09 18:35       ` KY Srinivasan
2014-07-09  8:39   ` [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host Christoph Hellwig
2014-07-09 20:07     ` KY Srinivasan
2014-07-09 23:39       ` KY Srinivasan

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=20140710101320.GB1151@infradead.org \
    --to=hch@infradead.org \
    --cc=apw@canonical.com \
    --cc=devel@linuxdriverproject.org \
    --cc=jasowang@redhat.com \
    --cc=jbottomley@parallels.com \
    --cc=kys@microsoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=ohering@suse.com \
    /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