Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

SCSI Command Tag Queuing to All Command Tag Queuing Devices

IP.com Disclosure Number: IPCOM000104988D
Original Publication Date: 1993-Jun-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 2 page(s) / 114K

Publishing Venue

IBM

Related People

Allen, JP: AUTHOR [+4]

Abstract

Disclosed is an algorithm for command tag queuing to all SCSI-2 command tag queuing devices. SCSI-2 command tag queuing devices into two groups: those that clear their queue on error and those that do not. Error recovery for devices that do not clear their queue on error is substantially more complicated and different then error recovery for devices that do clear the queue on error. This article discusses how to support both types of devices.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 51% of the total text.

SCSI Command Tag Queuing to All Command Tag Queuing Devices

      Disclosed is an algorithm for command tag queuing to all SCSI-2
command tag queuing devices.  SCSI-2 command tag queuing devices into
two groups: those that clear their queue on error and those that do
not.  Error recovery for devices that do not clear their queue on
error is substantially more complicated and different then error
recovery for devices that do clear the queue on error.  This article
discusses how to support both types of devices.

      Most SCSI command tag queuing devices do not support the
contingent allegiance condition.

      The extended contingent allegiance condition halts and device's
queue when an error occurs, and this condition will not be cleared
until the host sends a release recovery message.  The extended
contingent allegiance condition thus allows the host to perform the
necessary error recovery procedure before the device can continue
normal operation.  The contingent allegiance condition, however, is a
state in which the SCSI command tag queuing device will halt its
command queue when it detects an error.  This condition will be
cleared when the device receives another command.  Unfortunately, the
host needs to send - one command (i.e., a request sense) to first
determine what caused the error, but this will clear the contingent
allegiance condition before the host can determine the correct error
recovery procedure.  This problem further complicated by the fact
that only some command tag queuing devices (those which support the
Qerr bit on mode select page A and have it set) are guaranteed to
clear their command queue when clearing the contingent allegiance
condition.  The remaining command tag queuing devices may resume
processing of commands on their queue immediately after the
contingent allegiance condition is cleared, which prevents the host
from issuing error recovery commands before at least some of these
old commands are processed by the device.  So the problem we face is
that we need a way to recover from errors on devices which support
the Qerr bit and those that do not, while minimizing the device's
processing of old commands (commands queued at the device prior to
the error).  To support command tag queuing to all SCSI-2 command tag
queuing devices, we need to be able to deal with the above dilemma.

      The path of a command sent from the host to a SCSI device can
be divided into four layers: SCSI device driver, SCSI adapter driver,
SCSI adapter, and the SCSI device.  Thus any error recovery action
will need to be synchronized between these four layers.  This
solution has two sets of error recovery protocol: one for devices
which support the Qerr bit, and one for devices which do not.  The
SCSI device driver will determine which of the two protocols to apply
when the contingent allegiance condition...