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. -- Alexander Motin _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"