|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: iSCSI: ordered command delivery at the targetCaution: Device Server is a reserved keyword in SCSI. It is the mechanism which interprets a SCSI command, allocates data buffers, requests and performs the data transfer, and sends appropriate completion information. Those folks who are explaining that CmdSN is only used to capture the order of delivery of commands with respect to other commands are correct. The actual interpretation of the command, choice of execution order, data request order, and a stack of other things are at the whim of the Device Server, regulated only by those ordering attributes specifically requested by the originator of the request, the Application Client. Such actions are usually heavily overlapped for different tasks and are likely to be performed out of order. That is why the CmdSN is not used to identify those other actions. Instead, the ITT is used to identify the components of a task. References: SAM-2, iSCSI, SPC-2. Bob > I'm talking about Data-Out PDU's. CmdSN is NOT advanced > for Data-Out PDU's, only _copied_ from the original task/command. > > A task CANNOT be delivered to the device server > without all data being available at the target, > being the case that there could be a huge > network (Ethernet) latency. Once all data has > arrived, then the task is delivered to the > device server (LL SCSI) and CmdSN becomes irrelevant. > > Furthermore, CmdSN is NOT advanced on sending > Data-Out pdu's -- it is just copied there > from the original task/command. > > The whole point of this is making > inserting into the ``incoming'' priority > queue ordered. > > When the task is moved into a ``pending for more data'' queue, > this would naturally make the Data-out PDUs immediate > PDUs, as they should be. When Data-Outs arrive at the > target, CmdSN has advanced by at least k*** since the task has been > just _received_, and any ``older'' Data-Out PDUs (carrying > the same CmdSN) > will go to the front of the ``incoming'' queue and be seen > immediately. > > *** If k = 0, then the task is still in the ``incoming'' queue > and the Data-Out is sorted right after it -- same effect. > > Furthermore, the target will NOT allow CmdSN wrapping > for an outstanding task (one for which data is being delivered, I->T, > in order to be sent to the device server (SCSI), _only_ after which > CmdSN becomes irrelevant, but this means that all data was > delivered....). > > Do you see it? > > -- > Luben > P.S. CmdSN wrapping MUST not depend on the choice of > maximum data segment. The suggestion I posted preserves > this reservation. >
Home Last updated: Sat Jun 08 11:18:42 2002 10608 messages in chronological order |