public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Bart Van Assche <bvanassche@acm.org>
To: James Bottomley <James.Bottomley@HansenPartnership.com>,
	Alireza Haghdoost <alireza@cs.umn.edu>
Cc: linux-scsi@vger.kernel.org,
	Andrew Vasquez <andrew.vasquez@qlogic.com>,
	linux-driver@qlogic.com, Jerry Fredin <jerry.fredin@netapp.com>
Subject: Re: [SCSI] qla2xxx: Question about out-of-order SCSI command processing
Date: Tue, 03 Dec 2013 13:26:13 +0100	[thread overview]
Message-ID: <529DCDE5.6010304@acm.org> (raw)
In-Reply-To: <1386027526.2014.2.camel@dabdike.int.hansenpartnership.com>

On 12/03/13 00:38, James Bottomley wrote:
> Well this would be because we don't guarantee order at any granularity
> below barriers.  We won't reorder across barriers but below them we can
> reorder the commands and, of course, we use simple tags for queuing
> which entitles the underlying storage hardware to reorder within its
> internal queue.  Previously, when everything was single threaded issue,
> you mostly got FIFO behaviour because reorder really only occurred on
> error or busy, but I would imagine that's changing now with multiqueue.

Reordering SCSI commands was fine as long as hard disks were the only
supported storage medium. This is because most hard disk controllers do
not perform writes in the order these writes are submitted to their
controller. However, with several SSD models it is possible to tell the
controller to preserve write order. Furthermore, the optimizations that
are possible by using atomic writes are only safe if it is guaranteed
that none of the layers between the application and the SCSI target
changes the order in which an application submitted these atomic writes.
In other words, although it was safe in the past to reorder the writes
submitted between two successive barriers such reordering would
eliminate several of the benefits of atomic writes. A quote from the
draft SCSI atomics specification
(http://www.t10.org/cgi-bin/ac.pl?t=d&f=13-064r7.pdf):
<quote>
Atomic writes may:
  a) increase write endurance
    A) reducing writes increases the life of a flash-based SSD
  b) increase performance
    A) reducing writes results in fewer system calls, fewer I/Os over
       the SCSI transport protocol, and fewer interrupts
  c) improve reliability for non-journaled data
  d) simplify applications
    A) reduce or eliminate journaling
    B) keep applications from managing atomicity
</quote>

Bart.


  reply	other threads:[~2013-12-03 12:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-02 22:12 [SCSI] qla2xxx: Question about out-of-order SCSI command processing Alireza Haghdoost
2013-12-02 23:38 ` James Bottomley
2013-12-03 12:26   ` Bart Van Assche [this message]
2013-12-03 13:25     ` James Bottomley
2013-12-03 17:46       ` Alireza Haghdoost
2013-12-03 18:34         ` James Bottomley
2013-12-03 12:09 ` Bart Van Assche
2013-12-03 17:19   ` Alireza Haghdoost

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=529DCDE5.6010304@acm.org \
    --to=bvanassche@acm.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=alireza@cs.umn.edu \
    --cc=andrew.vasquez@qlogic.com \
    --cc=jerry.fredin@netapp.com \
    --cc=linux-driver@qlogic.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