QErr bit and Multi-Initiator

Charles Binford chas at smtplink.wichitaks.ncr.com
Thu Aug 11 11:39:17 PDT 1994

I do not understand how QErr bit works in a multi-initiator environment.  In 
SCSI-2 (and I assume SCSI-3 wording is similiar) it says:

"A QErr bit of one specifies all remaining suspended I/O processes shall be 
aborted after the contingent allegiance condition.....  A unit attention 
condition shall be generated for each initiator that had suspended I/O processes
aborted except for the initiator that had the contingent allegiance 

What I don't understand is what prevents two initiators from continuously 
aborting each other's I/Os?  Consider the following:

Initiator A     Initiator B
-----------     -----------
Send Tag 1
Send Tag 2
                Send Tag 3

Check Tag 1 
(the CA is now cleared.  Tags 2 and 3 are aborted)
Send Tag 4
                Send Tag 5
                Check Tag 5 
                ReqSns  (unit attention that Tag 3 had been aborted)
(the CA is now cleared. Tag 4 is aborted)

                Send Tag 6
Send Tag 7
Check Tag 7
ReqSns (unit attention that Tag 4 had been aborted)
(the CA is now cleared, Tag 6 is aborted)


Am I missing something obvious?  
Does SCSI *require* multi-initiators to have some external sychronization if 
QErr is enabled?

Charles Binford

More information about the T10 mailing list