James - I obtained a log from Doug (attached), and the firmware is returning BUSY, so your correct. That will end up as a ADD_TO_MLQUEUE disposition. Does the mid-layer throttle back the queue when a device returns busy, I don't know? I still believe that the lld shouldn't report that a device supports tagged when it really doesn't. I hope you will consider this patch, if not, let me know how to proceed. Eric Eric Moore wrote: > On Tuesday, May 29, 2007 4:03 PM, James Bottomley wrote: > > > The device is presumably returning BUSY when you try to > send a second > > command when it's already processing the first ... that should be > > propagated back to the mid-layer causing it to throttle the > > queue ... it > > seems this wasn't happening for some reason to get such a massive > > slowdown. Is this a more generic problem in the fusion or is it a > > simple issue only affecting the untagged case? > > > > Right, probably SELECTION_TIMEOUT. Or command timeout with error > handling threads getting called. Either way, the customer hasn't > provided a dmesg log or scsi bus trace, so we don't know for sure. But > is this analysis really required? Dont' you think the > driver should > return that it doens't support queued commands when > sdev->tagged_supported (look at scsi_scan.c function scsi_add_lun) is > set to zero? It appears that is what other drivers in the kernel > tree do. When I reorganized the code in a patch I provided back in > February, I moved analyzing the sdev->tagged_supported flag > to after I > set the queue depth, not before. >
ISO 9660 Extensions: Microsoft Joliet Level 3 ISO 9660 Extensions: RRIP_1991A mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=30720 bufflen=30720 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 86 11 00 00 0f 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=32768 bufflen=32768 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=49152 bufflen=49152 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 86 48 00 00 28 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 86 70 00 00 10 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 86 a8 00 00 18 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=32768 bufflen=32768 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 86 70 00 00 10 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 86 48 00 00 28 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=32768 bufflen=32768 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 86 70 00 00 10 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=2048 bufflen=2048 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=14336 bufflen=14336 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 86 e8 00 00 28 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 10 00 00 28 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 38 00 00 01 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 39 00 00 07 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=2048 bufflen=2048 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 38 00 00 01 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 10 00 00 28 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 86 e8 00 00 28 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=2048 bufflen=2048 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=49152 bufflen=49152 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 10 00 00 28 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 38 00 00 01 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 68 00 00 18 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=2048 bufflen=2048 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 38 00 00 01 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 10 00 00 28 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=2048 bufflen=2048 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 38 00 00 01 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=2048 bufflen=2048 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=14336 bufflen=14336 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 a8 00 00 28 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 d0 00 00 28 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 f8 00 00 01 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 f9 00 00 07 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=2048 bufflen=2048 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 f8 00 00 01 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 d0 00 00 28 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 a8 00 00 28 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=2048 bufflen=2048 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 d0 00 00 28 00 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 f8 00 00 01 00 mptscsih_io_done: [0:0:1:0] cmd=0x28 result=0x00000008 iocstatus=0x0000 scsi_state=0x00 scsi_status=0x08 loginfo=0x00000000 mptscsih_io_done: [0:0:1:0] resid=81920 bufflen=81920 xfer_cnt=0 sr 0:0:1:0: [sr0] Done: MLQUEUE sr 0:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_OK,SUGGEST_OK sr 0:0:1:0: [sr0] CDB: Read(10): 28 00 00 0e 87 d0 00 00 28 00