On Sun, Oct 24, 2010 at 10:55 AM, Alexander Motin <m...@freebsd.org> wrote:
> Garrett Cooper wrote:
>> On Sun, Oct 24, 2010 at 10:03 AM, Alexander Motin <m...@freebsd.org> wrote:
>>> Bruce Cran wrote:
>>>> On Sunday 24 October 2010 17:31:58 Bruce Cran wrote:
>>>>
>>>>> Log:
>>>>>   Mostly revert r203420, and add similar functionality into ada(4) since
>>>>> the existing code caused problems with some SCSI controllers.
>>> Proper way would be IMHO to fix polling in aac driver.
>>>
>>>>>   A new sysctl kern.cam.ada.spindown_shutdown has been added that controls
>>>>>   whether or not to spin-down disks when shutting down.
>>>>>   Spinning down the disks unloads/parks the heads - this is
>>>>>   much better than removing power when the disk is still
>>>>>   spinning because otherwise an Emergency Unload occurs which may cause
>>>>> damage to the actuator.
>>>> The FLUSH CACHE + STANDBY IMMEDIATE commands are issued (instead of just
>>>> SLEEP) following the procedure documented in Fujitsu's MHW series product
>>>> documentation under section 1.10.1, "Recommended power-off sequence".
>>> Not instead of "just SLEEP", but instead of FLUSH CACHE (by respective
>>> peripheral driver) + SLEEP (by xpt). It should probably be the same.
>>>
>>> Just for the note, SCSI specification states that STOP automatically
>>> implies FLUSH CACHE. ATA - doesn't.
>>
>>     I could be wrong, but I think the ANSI ATA<->SCSI spec states
>> otherwise (taken from ANSI INCITS 431-2007 page 62 -- see steps 1-4):
>>
>> 9.11.3 START STOP UNIT START bit LOEJ bit combinations
>> The SATL shall perform the actions shown in table 40 in response to a
>> START STOP UNIT command.
>> Table 40 — Definition of START and LOEJ bits in the START STOP UNIT CDB
>> START LOEJ Definition
>> 0 0 The SATL shall:
>> 1) If the IMMED bit is set to one, then return GOOD status;
>> 2) Issue an ATA flush command (see 3.1.11) to the ATA device;
>> 3) If the ATA flush command completes with any error, then process ending 
>> status
>> according to the IMMED bit (see 9.11.2) with the additional sense code set to
>> COMMAND SEQUENCE ERROR;
>> 4) If the ATA flush command completes without error, then issue an ATA 
>> STANDBY
>> IMMEDIATE command to the ATA Sector Count set to zero;
>> 5) If the ATA STANDBY IMMEDIATE command completes with any error, then
>> process ending status according to the IMMED bit (see 9.11.2) with the
>> additional
>> sense code set to COMMAND SEQUENCE ERROR; and
>> 6) If the ATA STANDBY IMMEDIATE command completes without error and the
>> IMMED bit is set to zero, then return GOOD status (see 9.11.2) a.
>>
>>     Not sure about the ATA spec standalone... might be present in the ATA8 
>> spec.
>
> As I understand, this just confirms what I have said:
> SCSI STOP == ATA FLUSH CACHE + STANDBY IMMEDIATE.
> So SCSI STOP implies flush, while ATA STANDBY IMMEDIATE doesn't.

Looking at it from that perspective, I agree.
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to