linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Smart <James.Smart@Emulex.Com>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: Tejun Heo <htejun@gmail.com>,
	SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: Regarding ordered-tag support.
Date: Wed, 08 Feb 2006 11:22:44 -0500	[thread overview]
Message-ID: <43EA1AD4.8010402@emulex.com> (raw)
In-Reply-To: <1139413766.3003.19.camel@mulgrave.il.steeleye.com>



James Bottomley wrote:
> On Wed, 2006-02-08 at 15:40 +0900, Tejun Heo wrote:
> ...<snip>...
> Unfortunately, though, this is only half the problem.
> 
> The other half is busy/queue_full processing and error recovery
> 
> For the first: busy/queue_full processing, the issue is that when we
> send out a command, we could get a BUSY or QUEUE_FULL return which comes
> back to us via IRQ context.  Unfortunately, we could have multiple
> commands that do this and a command will be accepted as soon as the busy
> condition alleviates, so we could see say two commands go down in order,
> the first one will get BUSY, the second is accepted and only then do we
> get the IRQ that says BUSY to the first ... now we have out of order
> execution.

James is also not disclosing other areas that may fail...

- How does multipathing affect this (maybe not dm, but others that exist).
- The implicit expectation of the LLDD and the hardware is that commands are
   placed on the wire in the same order given to queuecommand. However, no
   where is this mandated. In general, they do keep order. However, I've seen
   driver implementations that don't dispatch directly to hardware in
   queuecommand, allowing the intermediate steps to fail and perhaps disrupt
   ordering.
- Some adapters may actually be multipath/raid cards, thus affecting command
   delivery.
- SCSI Transports are not 100% reliable, affecting ordering. For FC,
   a single Frame corruption could cause a command frame to be dropped thus
   the next command received and executed out of order. You would not notice
   an issue until the scsi i/o timeout fires and aborts the i/o. The subsequent
   i/o may have already completed by that time. Some transports due have
   command sequence numbering to avoid this, but it's an optional feature.

-- james s

  parent reply	other threads:[~2006-02-08 16:22 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-08  6:40 Regarding ordered-tag support Tejun Heo
2006-02-08 15:49 ` James Bottomley
2006-02-08 16:10   ` Tejun
2006-02-08 16:25     ` James Smart
2006-02-08 16:57       ` Tejun
2006-02-08 17:07         ` James Bottomley
2006-02-08 17:18           ` Tejun
2006-02-08 17:27             ` James Bottomley
2006-02-08 18:04               ` Jeff Garzik
2006-02-09  4:12                 ` Tejun Heo
2006-02-09 17:20                   ` James Bottomley
2006-02-10  0:45                     ` Tejun Heo
2006-02-08 16:26     ` James Bottomley
2006-02-08 16:22   ` James Smart [this message]
2006-02-08 20:50     ` James Bottomley
2006-02-08 20:59       ` James Bottomley

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=43EA1AD4.8010402@emulex.com \
    --to=james.smart@emulex.com \
    --cc=James.Bottomley@SteelEye.com \
    --cc=htejun@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).