Bug 16070 - Fail to issue Start/Stop Unit
Summary: Fail to issue Start/Stop Unit
Status: RESOLVED DOCUMENTED
Alias: None
Product: IO/Storage
Classification: Unclassified
Component: SCSI (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: linux-scsi@vger.kernel.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-28 14:55 UTC by Ian Dall
Modified: 2012-07-20 12:41 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.34-rc5
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Ian Dall 2010-05-28 14:55:24 UTC
I am attempting to save power by spinning down idle scsi disks. These are old fashioned parallel (U320) disks on a SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 07).

I do:

sg_start --stop /dev/sde
echo 0xfffffff > /sys/module/scsi_mod/parameters/scsi_logging_level
dd if=/dev/sde of=/dev/null count=1
sleep 10
echo 0 > /sys/module/scsi_mod/parameters/scsi_logging_level

I get:
dd: reading `/dev/sde': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.00536828 s, 0.0 kB/s

If I manually spin up the disk with sg_start --start /dev/sde, then things work again as expected.

The relevant log is as follows:

May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_open
May 28 23:55:13 fs kernel: scsi_block_when_processing_errors: rtn: 1
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_init_command: block=0, count=32
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] block=0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] reading 32/32 512 byte blocks.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Send: 0xe3772780 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 20 00
May 28 23:55:13 fs kernel: buffer = 0xe37726e0, bufflen = 16384, queuecommand 0xf81773c6
May 28 23:55:13 fs kernel: leaving scsi_dispatch_cmnd()
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Done: 0xe3772780 SUCCESS
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_OK
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 20 00
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] scsi host busy 1 failed 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: Notifying upper driver of completion (result 8000002)
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_done: sb[respc,sk,asc,ascq]=70,2,4,2
May 28 23:55:13 fs kernel: 32 sectors total, 0 bytes done.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Device not ready
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 20 00
May 28 23:55:13 fs kernel: end_request: I/O error, dev sde, sector 0
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 0
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 1
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 2
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 3
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_init_command: block=0, count=8
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] block=0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] reading 8/8 512 byte blocks.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Send: 0xe3772780 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
May 28 23:55:13 fs kernel: buffer = 0xe37726e0, bufflen = 4096, queuecommand 0xf81773c6
May 28 23:55:13 fs kernel: leaving scsi_dispatch_cmnd()
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Done: 0xe3772780 SUCCESS
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_OK
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] scsi host busy 1 failed 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: Notifying upper driver of completion (result 8000002)
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_done: sb[respc,sk,asc,ascq]=70,2,4,2
May 28 23:55:13 fs kernel: 8 sectors total, 0 bytes done.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Device not ready
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
May 28 23:55:13 fs kernel: end_request: I/O error, dev sde, sector 0
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_release
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_open
May 28 23:55:13 fs kernel: scsi_block_when_processing_errors: rtn: 1
May 28 23:55:13 fs kernel: scsi_block_when_processing_errors: rtn: 1
May 28 23:55:13 fs kernel: scsi_block_when_processing_errors: rtn: 1
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Send: 0xe3772780 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Inquiry: 12 00 00 00 fe 00
May 28 23:55:13 fs kernel: buffer = 0xe37726e0, bufflen = 254, queuecommand 0xf81773c6
May 28 23:55:13 fs kernel: leaving scsi_dispatch_cmnd()
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Done: 0xe3772780 SUCCESS
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_OK
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Inquiry: 12 00 00 00 fe 00
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] scsi host busy 1 failed 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: Notifying upper driver of completion (result 0)
May 28 23:55:13 fs kernel: 0 sectors total, 254 bytes done.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_release
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_open
May 28 23:55:13 fs kernel: scsi_block_when_processing_errors: rtn: 1
May 28 23:55:13 fs kernel: scsi_block_when_processing_errors: rtn: 1
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Send: 0xe3772780 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Inquiry: 12 01 00 00 fe 00
May 28 23:55:13 fs kernel: buffer = 0xe37726e0, bufflen = 254, queuecommand 0xf81773c6
May 28 23:55:13 fs kernel: leaving scsi_dispatch_cmnd()
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Done: 0xe3772780 SUCCESS
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_OK
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Inquiry: 12 01 00 00 fe 00
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] scsi host busy 1 failed 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: Notifying upper driver of completion (result 0)
May 28 23:55:13 fs kernel: 0 sectors total, 254 bytes done.
May 28 23:55:13 fs kernel: scsi_block_when_processing_errors: rtn: 1
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Send: 0xe3772780 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Inquiry: 12 01 80 00 fe 00
May 28 23:55:13 fs kernel: buffer = 0xe37726e0, bufflen = 254, queuecommand 0xf81773c6
May 28 23:55:13 fs kernel: leaving scsi_dispatch_cmnd()
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Done: 0xe3772780 SUCCESS
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_OK
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Inquiry: 12 01 80 00 fe 00
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] scsi host busy 1 failed 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: Notifying upper driver of completion (result 0)
May 28 23:55:13 fs kernel: 0 sectors total, 254 bytes done.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_release
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_open
May 28 23:55:13 fs kernel: scsi_block_when_processing_errors: rtn: 1
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_init_command: block=0, count=256
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] block=0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] reading 256/256 512 byte blocks.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Send: 0xe3772780 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 01 00 00
May 28 23:55:13 fs kernel: buffer = 0xf70faa00, bufflen = 131072, queuecommand 0xf81773c6
May 28 23:55:13 fs kernel: leaving scsi_dispatch_cmnd()
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Done: 0xe3772780 SUCCESS
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_OK
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 01 00 00
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] scsi host busy 1 failed 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: Notifying upper driver of completion (result 8000002)
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_done: sb[respc,sk,asc,ascq]=70,2,4,2
May 28 23:55:13 fs kernel: 256 sectors total, 0 bytes done.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Device not ready
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 01 00 00
May 28 23:55:13 fs kernel: end_request: I/O error, dev sde, sector 0
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 0
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 1
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 2
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 3
May 28 23:55:13 fs kernel: Buffer I/O error on device sde, logical block 4
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_init_command: block=0, count=8
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] block=0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] reading 8/8 512 byte blocks.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Send: 0xe3772780 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
May 28 23:55:13 fs kernel: buffer = 0xe37726e0, bufflen = 4096, queuecommand 0xf81773c6
May 28 23:55:13 fs kernel: leaving scsi_dispatch_cmnd()
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Done: 0xe3772780 SUCCESS
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_OK
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] scsi host busy 1 failed 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: Notifying upper driver of completion (result 8000002)
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_done: sb[respc,sk,asc,ascq]=70,2,4,2
May 28 23:55:13 fs kernel: 8 sectors total, 0 bytes done.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Device not ready
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
May 28 23:55:13 fs kernel: end_request: I/O error, dev sde, sector 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_release
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_open
May 28 23:55:13 fs kernel: scsi_block_when_processing_errors: rtn: 1
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_init_command: block=0, count=256
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] block=0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] reading 256/256 512 byte blocks.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Send: 0xe3772780 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 01 00 00
May 28 23:55:13 fs kernel: buffer = 0xf70faa00, bufflen = 131072, queuecommand 0xf81773c6
May 28 23:55:13 fs kernel: leaving scsi_dispatch_cmnd()
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Done: 0xe3772780 SUCCESS
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_OK
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 01 00 00
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] scsi host busy 1 failed 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: Notifying upper driver of completion (result 8000002)
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_done: sb[respc,sk,asc,ascq]=70,2,4,2
May 28 23:55:13 fs kernel: 256 sectors total, 0 bytes done.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Device not ready
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 01 00 00
May 28 23:55:13 fs kernel: end_request: I/O error, dev sde, sector 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_init_command: block=0, count=8
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] block=0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] reading 8/8 512 byte blocks.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Send: 0xe3772780 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
May 28 23:55:13 fs kernel: buffer = 0xe37726e0, bufflen = 4096, queuecommand 0xf81773c6
May 28 23:55:13 fs kernel: leaving scsi_dispatch_cmnd()
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Done: 0xe3772780 SUCCESS
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_OK
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] scsi host busy 1 failed 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: Notifying upper driver of completion (result 8000002)
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_done: sb[respc,sk,asc,ascq]=70,2,4,2
May 28 23:55:13 fs kernel: 8 sectors total, 0 bytes done.
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Device not ready
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Sense Key : Not Ready [current] 
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] Add. Sense: Logical unit not ready, initializing command required
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
May 28 23:55:13 fs kernel: end_request: I/O error, dev sde, sector 0
May 28 23:55:13 fs kernel: sd 6:0:0:0: [sde] sd_release
May 28 23:55:14 fs kernel: scsi_block_when_processing_errors: rtn: 1


After getting: "Add. Sense: Logical unit not ready, initializing command required" I would expect a Start/Stop unit command, but it appears that none is ever issued.
Comment 1 Anonymous Emailer 2010-05-28 15:20:51 UTC
Reply-To: dgilbert@interlog.com

On 10-05-28 10:55 AM, bugzilla-daemon@bugzilla.kernel.org wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=16070
>
>             Summary: Fail to issue Start/Stop Unit
>             Product: IO/Storage
>             Version: 2.5
>      Kernel Version: 2.6.34-rc5
>            Platform: All
>          OS/Version: Linux
>                Tree: Mainline
>              Status: NEW
>            Severity: normal
>            Priority: P1
>           Component: SCSI
>          AssignedTo: linux-scsi@vger.kernel.org
>          ReportedBy: ian@beware.dropbear.id.au
>          Regression: No
>
>
> I am attempting to save power by spinning down idle scsi disks. These are old
> fashioned parallel (U320) disks on a SCSI storage controller: LSI Logic /
> Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 07).
>
> I do:
>
> sg_start --stop /dev/sde
> echo 0xfffffff>  /sys/module/scsi_mod/parameters/scsi_logging_level
> dd if=/dev/sde of=/dev/null count=1
> sleep 10
> echo 0>  /sys/module/scsi_mod/parameters/scsi_logging_level
>
> I get:
> dd: reading `/dev/sde': Input/output error
> 0+0 records in
> 0+0 records out
> 0 bytes (0 B) copied, 0.00536828 s, 0.0 kB/s
>
> If I manually spin up the disk with sg_start --start /dev/sde, then things
> work
> again as expected.

<snip>
>
> After getting: "Add. Sense: Logical unit not ready, initializing command
> required" I would expect a Start/Stop unit command, but it appears that none
> is
> ever issued.

There is a different design philosophy between SCSI and
ATA disks (and has been for a very long time) reflecting
their different markets. When a SCSI disk is spun down, then
it will return errors on any command trying to do IO
until a SCSI START STOP UNIT command (start) is sent and then
time is allowed for the disk to spin up.

What you report as a bug is the long standing behaviour of
SCSI disks which Linux has not tried to modify.

Doug Gilbert
Comment 2 Anonymous Emailer 2010-05-28 15:36:13 UTC
Reply-To: brking@linux.vnet.ibm.com

On 05/28/2010 10:20 AM, Douglas Gilbert wrote:
> On 10-05-28 10:55 AM, bugzilla-daemon@bugzilla.kernel.org wrote:
>> https://bugzilla.kernel.org/show_bug.cgi?id=16070
>>
>>             Summary: Fail to issue Start/Stop Unit
>>             Product: IO/Storage
>>             Version: 2.5
>>      Kernel Version: 2.6.34-rc5
>>            Platform: All
>>          OS/Version: Linux
>>                Tree: Mainline
>>              Status: NEW
>>            Severity: normal
>>            Priority: P1
>>           Component: SCSI
>>          AssignedTo: linux-scsi@vger.kernel.org
>>          ReportedBy: ian@beware.dropbear.id.au
>>          Regression: No
>>
>>
>> I am attempting to save power by spinning down idle scsi disks. These
>> are old
>> fashioned parallel (U320) disks on a SCSI storage controller: LSI Logic /
>> Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 07).
>>
>> I do:
>>
>> sg_start --stop /dev/sde
>> echo 0xfffffff>  /sys/module/scsi_mod/parameters/scsi_logging_level
>> dd if=/dev/sde of=/dev/null count=1
>> sleep 10
>> echo 0>  /sys/module/scsi_mod/parameters/scsi_logging_level
>>
>> I get:
>> dd: reading `/dev/sde': Input/output error
>> 0+0 records in
>> 0+0 records out
>> 0 bytes (0 B) copied, 0.00536828 s, 0.0 kB/s
>>
>> If I manually spin up the disk with sg_start --start /dev/sde, then
>> things work
>> again as expected.
> 
> <snip>
>>
>> After getting: "Add. Sense: Logical unit not ready, initializing command
>> required" I would expect a Start/Stop unit command, but it appears
>> that none is
>> ever issued.
> 
> There is a different design philosophy between SCSI and
> ATA disks (and has been for a very long time) reflecting
> their different markets. When a SCSI disk is spun down, then
> it will return errors on any command trying to do IO
> until a SCSI START STOP UNIT command (start) is sent and then
> time is allowed for the disk to spin up.
> 
> What you report as a bug is the long standing behaviour of
> SCSI disks which Linux has not tried to modify.

If you set the allow_restart sysfs parameter on the disk, it should automatically
spin up the disk when scsi eh sees that sense data.

Thanks,

Brian
Comment 3 Ian Dall 2010-05-29 00:57:56 UTC
Ah, thanks. That works perfectly!

I knew that traditionally this wasn't supported in linux (as per comment #1) but I also understood that the functionality had been added in recent kernels.

In my defence, I can't find any reference to this in "man sd' nor with "grep allow_restart Documentation/scsi/*".

Can this be treated as a documentation bug?

Note You need to log in before you can comment on or make changes to this bug.