Contigent Allegiance question

ljr at ljr at
Wed Aug 16 11:19:43 PDT 1995

If you are operating in a multi-initiator configuration and are allowing active
commands from more than one initiator at once, then you are operating in 
either a tagged or untagged queuing environment.  If you've got a queue tag 
prepended to the command it's a tagged command and multiple commands from that 
same initiator can be active at once.

In an untagged queuing environment, the standard doesn't say whether the 
target can process commands from other initiators when a CAC arises for one
initiator, so it's target-dependent and would mainly seem to depend on the 
ability of the target to maintain seperate sense data for each initiator.
But no more than one command from any initiator can exist at any time anyway.

In a tagged environment, the standard explicitly says that all TAGGED I/O
processes are suspended during the CAC and the target should return BUSY to ALL
new I/Os. After the CAC is cleared, the pending I/Os may be aborted or resumed,
depending on the state of the QERR bit in mode page 0x0a.

Here is an example of where the standard is magnificently unclear.  In the case
of mixed queuing model environments (untagged and tagged queuing from different
initiators) do the rules about freezing the queues and returning BUSY to new 
I/Os apply to initiators that are using untagged commands as well as 
those using tagged ones?  WHat if I get a CAC on the untagged queue?  Does that
freeze the tagged queue?  If QERR=1 does it cause the tagged queue to flush 
when the CAC is cleared for the untagged queue?

I suspect that most targets opt for the simpler situation, where any CAC 
will suspend existing I/Os for all initiators and return BUSY to all new I/Os 
irregardless of the presence of a tag.  But a sophisticated target could
conceivably handle both types seperately and continue to process untagged 
commands from one initiator while returning BUSY to all tagged commands from 
other initiators until the CAC is cleared.

In my experience, targets treat the untagged queue case similarly to the
tagged queue with regard to CACs, the only difference being that the queue
depth is one.

Les Record
ljr at
(512) 838-3622
Austin, Texas

----------------------------- Note follows -----------------------------
From: "Lohmeyer, John" <JLOHMEYE at>
To: SCSI Reflector <scsi at>
Subject: RE: Contigent Allegiance question
Date: Wed, 16 Aug 95 10:10:00 MDT
Message-Id: <30321966 at>
Encoding: 11 TEXT
X-Mailer: Microsoft Mail V3.0

Charles Binford is quite right.  I did miss the 'If'. So, a target can 
accept (and process) commands from another initiator during a CA so long as 
the target is designed to have separate sense areas for each initiator.

John Lohmeyer             E-Mail:  john.lohmeyer at
Symbios Logic Inc.         Voice:  719-573-3362
1635 Aeroplaza Dr.           Fax:  719-573-3037
Colo Spgs, CO 80916     SCSI BBS:  719-574-0424 300--14400 baud

More information about the T10 mailing list