[Bug 15565] SCSI Generic queueing completes commands in reverse order

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





--- Comment #1 from Anonymous Emailer <anonymous@xxxxxxxxxxxxxxxxxxxx>  2010-03-18 02:20:02 ---
Reply-To: dgilbert@xxxxxxxxxxxx

bugzilla-daemon@xxxxxxxxxxxxxxxxxxx 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@xxxxxxxxxxxxxxx
>         ReportedBy: mh-linux-kernel@xxxxxxxx
>         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.

Doug Gilbert

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux