Locked in cache question

Charles Monia Monia at mail.dec.com
Fri May 16 13:00:23 PDT 1997


* From the SCSI Reflector (scsi at symbios.com), posted by:
* Charles Monia <Monia at mail.dec.com>
*
Hi Paul:

I agree with your response to Brent Skinner regarding the interaction =
between the FUA bit and cache locking, however the following part of =
your note raised a question.

You said, in part:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
.................I find this sequence quite reasonable in a=20
multi host configuration. The OS sets up a control area that=20
many processes use. Other hosts may update specific parts of=20
that area. Periodically, some process does a read with the FUA=20
bit set to refresh this hosts copy of the data.
                   ^^^^^^^^^^^^^^^=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

The above seems to imply that the control area in cache somehow contains =
seperate copies of the data for each initiator and that FUA is used to =
make these private copies coherent. Is that what you meant to imply?   =
If so, I find no basis in the SBC standard for that conclusion. If =
you're referring to the LBN copy in host memory then I'm unclear on how =
that relates to the FUA bit.

Assuming you're referring to the drive cache, I can find no case where =
it's possible for the initiator to obtain stale data under any =
circumstance. In particular, the cache behavior specified in SBC rev 8 =
for the READ command with pending write-back (clause 6.1.5, paragraph 6, =
pp 42) states:

"A (FUA) bit of one indicates that the device server shall access the =
media in performing the command prior to returning GOOD status. Read =
commands shall access the specified logical blocks from the media (i.e., =
the data is not directly retrieved from the cache). If the cache =
contains a more recent version of a logical block than the media, the =
logical block shall first be written to the media."

Given this behavior, I can't see how the FUA bit could be used in the =
manner you suggest.

Charles


* From the SCSI Reflector (scsi at symbios.com), posted by:
* Paul Boulay <p_boulay at hitachi.com>
*
In response to the following note from Brent Skinner, Paul Boulay =
replied:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Hi Brent,

I'm with Pat on this one.=20
Don't post an error, don't make a fuss. Read the data off the
media like you were told; update the cache as is always=20
necessary anyway; get on with life.=20

The misunderstanding here is the meaning of the Lock Cache
command. This is intended to be an instruction to the device
about cache management not a restriction on the future actions=20
of the host.=20

Of course, the host is killing the performance gains that might=20
be possible by setting up the cache lock but that's his=20
business. Actually, I find this sequence quite reasonable in a=20
multi host configuration. The OS sets up a control area that=20
many processes use. Other hosts may update specific parts of=20
that area. Periodically, some process does a read with the FUA=20
bit set to refresh this hosts copy of the data. I guess that=20
this may not make much sense when viewed from the single=20
controller that is the sole pathway to the data but a SCSI=20
command set should be valid at both the controller level and=20
the process API level.
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D

Brent Skinner wrote:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
* From the SCSI Reflector (scsi at symbios.com), posted by:
* skinner at kodak.com (Brent Skinner)
*
Fellow Scsi's,

I am attempting to figure out what error to return when a host has
previously locked data into the cache and later attempts to perform
a READ command with FUA set to '1' for the same LBA. Would this
be considered a write protect situation (ASC/ASCQ of 27/00)...or
a data protect sense key of 7...or some other error?
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D



*******************************************
* Charles Monia                           *
* Storage Architecture Group              *
* Digital Equipment Corporation           *
* 334 South Street                        *
* Shrewsbury, MA 01545                    *
*                                         *
* email: monia at mail.dec.com               *
* Phone: (508) 841-6757                   *
* Fax:   (508) 841-6100                   *
*******************************************

*
* For SCSI Reflector information, send a message with
* 'info scsi' (no quotes) in the message body to majordomo at symbios.com




More information about the T10 mailing list