linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugzilla.kernel.org
To: linux-scsi@vger.kernel.org
Subject: [Bug 15565] SCSI Generic queueing completes commands in reverse order
Date: Thu, 18 Mar 2010 10:33:54 GMT	[thread overview]
Message-ID: <201003181033.o2IAXsfr015339@demeter.kernel.org> (raw)
In-Reply-To: <bug-15565-11613@http.bugzilla.kernel.org/>

http://bugzilla.kernel.org/show_bug.cgi?id=15565





--- Comment #3 from Anonymous Emailer <anonymous@kernel-bugs.osdl.org>  2010-03-18 10:32:31 ---
Reply-To: bharrosh@panasas.com

On 03/18/2010 04:19 AM, Douglas Gilbert wrote:
> bugzilla-daemon@bugzilla.kernel.org wrote:
>> http://bugzilla.kernel.org/show_bug.cgi?id=15565
>>
>>            Summary: SCSI Generic queueing completes commands in reverse
>>                     order
>>            Product: IO/Storage
>>            Version: 2.5
>>     Kernel Version: 2.6.18-2.6.32
>>           Platform: All
>>         OS/Version: Linux
>>               Tree: Mainline
>>             Status: NEW
>>           Severity: normal
>>           Priority: P1
>>          Component: SCSI
>>         AssignedTo: linux-scsi@vger.kernel.org
>>         ReportedBy: mh-linux-kernel@loup.net
>>         Regression: No
>>
>>
>> I've noticed after queueing the first command, subsequent commands
>> appear to be executed and complete in reverse order.  The SCSI Generic
>> HOWTO says "By default, read() will return the oldest completed
>> request that is queued up."
>>
>> This could also be a performance defect if it's what's really
>> happening since it isn't desirable behavior if, for example, ios are
>> typically ordered by lba and issued one at a time by kernel to a non
>> queueing block device.
>>
>> This reverse order behavior is trivial to reproduce; just queue 16
>> concurrent INQUIRY commands.  The following are typical results I get
>> from initially queueing 16 READ_10 commands.
>>
>>    Completion Command #  hdr.driver_duration (us)
>>    Order
>>    1          22         14979
>>    2          20         14981
>>    3          19         14982
>>    4          17         14984
>>    5          16         14985
>>    6          15         14986
>>    7          14         14988
>>    8          12         14990
>>    9          11         14991
>>    10         10         14992
>>
> 
> I have been told that is a feature :-)
> 
> The SCSI mid level processes commands from
> pass-throughs (e.g. sg and bsg) in LIFO order.
> For certain types of error processing it makes
> sense. For READs and WRITEs it makes no sense.
> 

I have fixed that for bsg long ago. There is a flag
that you put:
    sg.flags = BSG_FLAG_Q_AT_TAIL;
Which will do the by order, queue at tail. Zero was kept compatible
to sg meaning "queue at head" i.e. jump the line.

> Doug Gilbert
> 

It could be added to sg as well if needed

Boaz

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

  parent reply	other threads:[~2010-03-18 10:33 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-17 22:33 [Bug 15565] New: SCSI Generic queueing completes commands in reverse order bugzilla-daemon
2010-03-18  2:19 ` Douglas Gilbert
2010-03-18  9:56   ` Boaz Harrosh
2010-03-18  2:20 ` [Bug 15565] " bugzilla-daemon
2010-03-18  8:23 ` bugzilla-daemon
2010-03-18 10:33 ` bugzilla-daemon [this message]
2010-03-18 17:21 ` bugzilla-daemon
2010-03-18 18:02   ` Boaz Harrosh
2010-03-18 19:30     ` Douglas Gilbert
2010-03-19 19:41       ` Vladislav Bolkhovitin
2010-03-19 20:57         ` Michael Reed
2010-03-21 11:45           ` Boaz Harrosh
2010-03-18 18:03 ` bugzilla-daemon
2010-03-18 19:31 ` bugzilla-daemon
2010-03-19 20:30 ` bugzilla-daemon
2010-03-19 21:36 ` bugzilla-daemon
2010-03-20  3:28 ` bugzilla-daemon
     [not found] <bug-15565-11613@https.bugzilla.kernel.org/>
2010-03-21 11:46 ` bugzilla-daemon
2012-07-05 16:12 ` bugzilla-daemon

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=201003181033.o2IAXsfr015339@demeter.kernel.org \
    --to=bugzilla-daemon@bugzilla.kernel.org \
    --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).