Tagged Queueing and Dque Bit

Mike Bilow mikebw at bilow.bilow.uu.ids.net
Tue Jan 6 10:17:04 PST 1998



Daniel M. Eischen wrote in a message to Mike Bilow:

> After I figured out the Dque bit, and reset it to zero, it worked flawlessly
> with tagged queueing enabled.
>
> So I would suggest, that the driver should check also the Control Mode
> Page (if available), and should honor the Dque bit (fall back to not use 
> tagged queueing if Dque is set).

 DME> The driver is not in the business of making it's own SCSI
 DME> commands and sending them to the target.  The mid-level SCSI
 DME> code and target drivers do this.  The mid-level SCSI code
 DME> detects whether the drive is capable of doing tagged
 DME> queueing and sets a bit in the SCSI request structure that
 DME> the driver looks at.  If this bit is set, and tagged
 DME> queueing is enabled in the driver, then you're going to get
 DME> tagged queueing.

I think there's a design problem here.  Devices usually return data in response
to the INQUIRY command out of ROM, including the state of the CmdQue bit which
indicates whether tagged queueing capability exists.  It is then up to the
initiator to enable or disable tagged queueing through the DQue bit on the
Control Mode Page, and should at the same time configure the QErr bit to
determine whether unexecuted commands in the queue are to be aborted when an
error occurs.  If the mid-level SCSI code is depending solely upon the INQUIRY
response without either reading or writing the Control Mode Page, then this is
a clear error that needs to be fixed -- it may solve a lot of problems.

 DME> If a fix is to be made for this, it belongs in the mid-level
 DME> SCSI code.

That makes some sense, but I see no reason we could not at least perform a
sanity check and warn about any inconsistency.  We're in the middle: if the
mid-level SCSI code is telling us to do tagged queueing and the device is
telling us it has tagged queueing disabled, it seems we are in a good position
to notice this and do something about it.
 
-- Mike





More information about the aic7xxx mailing list