|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: iSCSI : Command Ordering Proposal.Santosh Rao <santoshr@cup.hp.com> writes: > [1 <text/plain; us-ascii (7bit)>] > Julian & All, > > Proposal : > ======= > CmdSN should be used to enforce ordering only when the Ordered Task Tag > attribute is set in the SCSI Command PDU. Santosh, I believe you may be missing a subtlety to the SCSI task queueing model. I may also be missing a subtlety of your argument and, if so, please excuse this e-mail. Consider three commands sent down a FIFO SCSI transport: 1) Ordered Command 2) Simple Command 3) Simple command The ordered command is received first and then the two simple commands. The ordered command is guaranteed to be executed before either SIMPLE command. Relevant text from SAM-2 rev 14, sec 7.5.1 "The [simple] task shall not enter the Enabled state until all older Head of Queue and older Ordered tasks have ended." Your proposed change means that CmdSN no longer is able express that the Ordered task is "older" that the "simple" task. Thus, an initiator might need to stop-and-wait before issuing #2 and #3. I say "might" because iSCSI now transports SCSI Command Reference Numbers (CRNs) in the command PDU. The CRN is a SAM-2 rev. 15 (and FCP) construct that tells us which commands are older than others. So, in some cases, the CmdSN may no longer be needed at all to tell which commands are "older" than others. Given that we have CRNs, why do we need CmdSNs? Well, CmdSNs provide a couple extra features: - ordering on task management (SAM doesn't defined that CRNs are used with task management) - ordering when application doesn't support CRNs (though couldn't the iSCSI layer fabricate CRNs?) - flow control of the iSCSI target queue -Costa
Home Last updated: Tue Sep 04 01:05:41 2001 6315 messages in chronological order |