Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         blk2scsa reset/abort facility
    1.2. Name of Document Author/Supplier:
         Author:  Garrett D'Amore
    1.3  Date of This Document:
        11 January, 2008
4. Technical Description

I'm proposing this automatic case on my own behalf.  The changes should be
non-controversial minor updates to the blk2scsa case, which has not yet
integrated. 

The blk2scsa case (2007/654) failed to indicate a release binding, but
I believe it qualifies for patch binding (as does this case, since nothing
has delivered and therefore there are no API changes), although
I have no plans to backport it to Solaris 10 at this time.

blk2scsa reset/abort facility & change to use enumerations
----------------------------------------------------------

Problem:

SCSA (and most importantly, sd(7d)) requires transport layers to implement
both tran_abort(9E) and tran_reset(9E) entry points.  The orginal blk2scsa
case, PSARC 2007/654, failed to address this.  These entry points may require
support from underlying transport drivers, as in-flight commands must be
aborted appropriately.

Secondarily, it was pointed out during code review that use of enumerations
to express blk2scsa request codes and error codes would make debugging with
tools such as mdb(1M) more pleasant.

Solution:

We introduce two new request codes, B2S_CMD_RESET and B2S_CMD_ABORT,
and two associated error codes, B2S_ERESET and B2S_EABORT.

B2S_CMD_RESET is issued when the SCSI target driver calls scsi_reset(9F),
through the tran_reset(9E).  It makes no use of any additional data.  (Note
that this is called when either RESET_TARGET or RESET_BUS is issued. No
support for resetting individual LUNs is provided.)  Any requests that are
currently queued should be aborted with a new error code, B2S_ERESET,
indicating that a reset occurred while they were queued for processing.

B2S_CMD_ABORT is issued when the SCSI target driver calls scsi_abort(9F)
without a specific packet.  (The blk2scsa layer does not have the ability to
abort specific SCSI packets.)  Commands that are queued for processing
should be aborted with a new error code, B2S_EABORT, indicating that they
were successfully aborted at the request of the SCSI target driver.

Finally, we have changed the types of the br_cmd and br_errno to use
enumerations instead of ints.  br_cmd is now a b2s_cmd_t, and br_errno is
now a b2s_err_t.  Also, the second argument of b2s_request_done now takes
a b2s_err_t instead of an int.  These changes have no source or ABI 
compatibility changes, but merely facilitate easier debugging when using
mdb.

6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                ON
    6.5. ARC review type: Automatic
    6.6. ARC Exposure: open


Reply via email to