SBC-2 PRE-FETCH behavior

Gerry.Houlder at seagate.com Gerry.Houlder at seagate.com
Tue Jan 20 12:14:27 PST 2004


* From the T10 Reflector (t10 at t10.org), posted by:
* Gerry.Houlder at seagate.com
*

Two comments:

(a) I thought we discussed obsoleting this command? I think that is the
best solution here.

(b) If IMMED=0 and there is not complete success is doing the prefetch; if
the reason is similar to the IMMED=1 cases (e.g., not enough memory
available for it all) then return GOOD status; any other reason will
probably qualify for a CHECK CONDITION status of some kind. A simpler way
to describe this is not make the behavior conditional on IMMED bit setting,
only on whether the drive knows there is sufficient room in the cache. The
real nuance here is that when IMMED=1 the target must decide based on
current free space, while when IMMED=0 the target probably can flush older
data to make more room before deciding the ending status.



                                                                                                                       
                      "Elliott, Robert                                                                                 
                      (Server Storage)"        To:       <t10 at t10.org>                                                 
                      <elliott at hp.com>         cc:                                                                     
                      Sent by:                 Subject:  SBC-2 PRE-FETCH behavior                                      
                      owner-t10 at t10.org                                                                                
                      No Phone Info                                                                                    
                      Available                                                                                        
                                                                                                                       
                      01/19/2004 04:11                                                                                 
                      PM                                                                                               
                                                                                                                       
                                                                                                                       




* From the T10 Reflector (t10 at t10.org), posted by:
* "Elliott, Robert (Server Storage)" <elliott at hp.com>
*
SBC-2 defines a few rules for the PRE-FETCH command, which is the only
command left in SCSI returning the "CONDITION MET" status:

IMMED=1, cache has sufficient room => CONDITION MET status
IMMED=1, cache does not have sufficient room => GOOD status
IMMED=0, complete success => CONDITION MET

However, it does not mention what to do if IMMED=0 and there is not
complete success transferring the requested blocks into the cache.
Errors could range from not enough room in the cache to an unrecoverable
read error.

When should it return GOOD status (like the IMMED=1 case) versus CHECK
CONDITION status?  To parallel the IMMED=1 behavior, it seems like it
should return GOOD if the cache isn't big enough.  A CHECK CONDITION for
other reasons (that would generate deferred errors under IMMED=1) seems
appropriate.

Alternatives: obsolete PRE-FETCH (see 8 Oct 03 thread).  Or, we could
keep it but dump the CONDITION MET status and just have it return GOOD
and CHECK CONDITION like other commands.


The current wording is:
If the immed bit is zero and the specified logical blocks were
successfully transferred to the cache memory, the device server
shall return CONDITION MET status. If the link bit is set to one
in the control byte (see SPC-3), the device server shall return
INTERMEDIATE-CONDITION MET status.

If the immed bit is set to one, and the unlocked cache memory
has sufficient capacity to accept all of the specified logical
blocks, the device server shall return CONDITION MET status. If
the link bit is one, and the unlocked cache memory has sufficient
capacity to accept all of the specified logical blocks, the device
server shall return INTERMEDIATE-CONDITION MET status.

If the immed bit is set to one, and the unlocked cache memory
does not have sufficient capacity to accept all of the specified
logical blocks, the device server shall return GOOD status. The
device server shall transfer to cache memory as many logical
blocks that fit. If the link bit is one, the device server
shall return INTERMEDIATE status.


--
Rob Elliott, elliott at hp.com
Hewlett-Packard Industry Standard Server Storage Advanced Technology
https://ecardfile.com/id/RobElliott



*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org





*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org




More information about the T10 mailing list