One case where drives currently "Freeze" is when a cashed write fails. At that point, the host must be notified that one or more of the previously successfully acknowledged writes was unable to be written. The current behavior of several drives is to freeze until a power cycle occurs. NOTE: a COMRESET does NOT ( and should not) reset this condition. Only the power cycle resets this condition.
I would MUCH rather see a more identifiable error condition. Ideally, the drive should return a specific error to ALL commands until it is explicitly reset by the host. The "reset" should NOT be any currently defined command. It should be explicitly reserved to reset the failed cashed write. The host must not be allowed to continue without specifically acknowledging that data on the drive HAS BEEN CORRUPTED.
...Harlan
On Mar 8, 2005, at 1:44 PM, John Masiewicz wrote:
<x-tad-bigger>Brian,</x-tad-bigger>
<x-tad-bigger>I don’t think you asked quite the right questions as posed in the meeting, especially regarding the BIST.</x-tad-bigger>
<x-tad-bigger>BIST was not listed are re-transmittable in the list, but if you look at the Device Transport BIST Activate state diagram, a retry is explicitly directed. This was the inconsistency we were trying correct. I don’t have any problem adding a note, but the two section are not in agreement, thus the request for clarification, it there is any.</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger>The issue with “Freeze” is that it is recommended. I cannot think of any condition where I would recommend a drive “Freeze” as a policy. (I have no objection to hosts freezing) Freeze means rely on timeouts, which in ATA are as long as 30 seconds. This does not sound like a good recommendation for error handling if you know you are in an unrecoverable situation. Freeze, as discussed in the meeting, implies do nothing, and respond to nothing (except COMRESET). If a device is so perturbed that it unrecoverable and it knows this, certainly a COMINIT from the device or COMRESET from the host might be recommended, but not “freezing”.</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger>I prefer eliminating the unnecessary recommendation, since it offers nothing in terms of error recovery, but rather says do not perform error recovery. Similarly, it is in a section entitled “Software error recovery” and I would not recommend that the software “freeze”.</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger>Please, however, review the state machines on the BIST retry, and reconsider your recommendation.</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger>John Masiewicz</x-tad-bigger>
<x-tad-bigger>Western Digital</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger>
<x-tad-bigger>From:</x-tad-bigger><x-tad-bigger> [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] </x-tad-bigger><x-tad-bigger>On Behalf Of </x-tad-bigger><x-tad-bigger>Dees, Brian M</x-tad-bigger>
<x-tad-bigger>Sent:</x-tad-bigger><x-tad-bigger> Tuesday, March 08, 2005 8:44 AM</x-tad-bigger>
<x-tad-bigger>To:</x-tad-bigger><x-tad-bigger> [email protected]</x-tad-bigger>
<x-tad-bigger>Subject:</x-tad-bigger><x-tad-bigger> [t13] Inquiries into SATA material during ATA/8 review</x-tad-bigger>
<x-tad-bigger>Hi,</x-tad-bigger>
<x-tad-bigger>During the review of the ATA/8 Serial Transport material in the February T13 Summit a few items were given to me as the liaison into the SATA-IO to research the meaning or intent. Below are the questions and responses I've recorded in finding the details.</x-tad-bigger>
<x-tad-bigger>1. What was the original intent of listing 'Freeze' as a valid category for error responses? (see sections 10.1 & 10.5.2 of d1697r0a-ATA8-ST, where Freeze has been removed)</x-tad-bigger>
<x-tad-bigger><Original reference in sections 11.1 (pg 273) and 11.5.2 (pg 279) of Serial ATA 1.0a.></x-tad-bigger>
<x-tad-bigger>Freeze is the condition the drive enters where a host action like a reset is required to recover the drive. Whether you admit it or not, it is not unusual for drives to enter this state. Serial ATA might have been the first to explicitly call this behavior out, although it is not an unusual occurrence. In hopelessly messed up situations, it is probably safer for a drive to halt and await the host cleaning up with a reset than it might be for the drive to proceed and potentially exacerbate the situation.</x-tad-bigger>
<x-tad-bigger>2. Why isn't BIST Activate included in the list of frame types that can be retransmitted? (see section 10.4.3.2 of d1697r0a-ATA8-ST)</x-tad-bigger>
<x-tad-bigger><Original reference in section 11.4.2.2 (page 278) of Serial ATA 1.0a.></x-tad-bigger>
<x-tad-bigger>BIST is not a function performed during the normal course of operation for a disk drive. Since it’s an engineering lab-bench function to be used in controlled conditions by knowledgeable experts, it does not have the kinds of automatic recovery that normal user functions might have. In some lab settings, it could even be detrimental for auto-recovery operations to be performed by the interface, since some lab functions are for the purpose of examining such behaviors. If the BIST Activate function fails in a lab setting, the engineer is presumably sufficiently capable to know what is happening and attempt the operation over again.</x-tad-bigger>
<x-tad-bigger>With the understanding of the above explanations, I believe that 'Freeze' should be re-inserted back into the ATA/8 material and that BIST Activate should still not exist in the list referred to by question #2. This would require three total edits, although minor, into the next revision of the document.</x-tad-bigger>
<x-tad-bigger>Regards,</x-tad-bigger>
<x-tad-bigger>Brian</x-tad-bigger>
