|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: iSCSI: Session Partial ResolutionCharles, I thought we were all together until you said, ...have the initiator budget one "credit" to be used for this purpose. Up until that statement there had been no mention of Credit, and I am not sure why we need to bring that concept in. Randy (HAAGENS), You said: "The question of the storage controller's overcommitting command queue credits has been raised. Our initial thought was that this would not be allowed. But if it must be allowed, then we could extend the command sequencing scheme to allow to target to drop commands and later demand their retransmission. The command sequence numbers would ensure that, ultimately, all commands are delivered in order, with no commands lost or duplicated." I am confused since I do not find the work "Credits" anywhere in the Draft. With all the stuff that has been going around about credits, perhaps you could either tell me what you meant by credits, or tell me where that is specified in the Draft. The way it has been use recently is to clone the approach that FC uses. This seems confusing, since I do not understand why that is needed with TCP. Therefore, I keep thinking that I am misunderstanding you. In any event, based on what Charles said (in the rest of his note) I got the feeling that there was only Two "channels" (or connections) needed per Session to prevent the blockage folks keep talking about. One for commands and one for data, esp. since Charles made the point that control functions should be on the same connection with commands. Do you agree that a double connection per Session solves most of the problems we have been talking about? . . . John L. Hufferd Charles Monia <cmonia@NishanSystems.com>@ece.cmu.edu on 09/26/2000 05:35:22 PM Sent by: owner-ips@ece.cmu.edu To: "HAAGENS,RANDY (HP-Roseville,ex1)" <randy_haagens@hp.com>, "David Black (E-mail)" <black_david@emc.com> cc: "IPS (E-mail)" <ips@ece.cmu.edu> Subject: RE: iSCSI: Session Partial Resolution Hi: See below for a few comments on flow control. > -----Original Message----- > From: HAAGENS,RANDY (HP-Roseville,ex1) [mailto:randy_haagens@hp.com] > Sent: Tuesday, September 26, 2000 7:51 AM > To: David Black (E-mail) > Cc: IPS (E-mail) > Subject: RE: iSCSI: Session Partial Resolution > > > David, > > I. Re: proposed points of consensus > <Material deleted> > (1) Command sequencing was added to the draft for several > reasons, but the > important point here is that command flow control is > necessary when using a > single TCP connection in order to prevent a command queue > full condition > from preventing the reception of write data. We could just > leave command > flow control to the good behavior of the SCSI layer (there is no SCSI > mechanism defined for it, and so it is > implementation-dependent), but we > decided that it was legitimate to treat it at the iSCSI > "transport" layer, > since from SCSI's pov, it is a transport problem. Command > sequencing also > solved two other problems (ordered command striping and > recovery from TCP > connection failure), so it seemed like an efficient mechanism overall. > > Some have objected that command windowing may result in the > command queue's > being blocked, and urgent commands' not getting through. If > I recall the > draft correctly, we made provision for this with the notion > of unnumbered > commands. These can be sent at any time by the initiator; > but since they do > not have a reserved place in the command queue, their > reception must be > considered unreliable: the target can drop them at its discretion. I > believe this situation is familiar to the T10 community, and > acceptable from > a SAM-2 perspective. But if not, we could create a separate, > sequenced, > command queue for urgent commands. > Hi: I think the above proposal is headed in the right direction with respect to command windowing. I'd like to make a few observations and suggestions however. 1. I'm inclined to reserve the use of unnumbered "slots" for task management functions, such as "abort task", etc. 2. As I recall (possibly not very accurately) SAM-xx states that an initiator should not have more than one pending task management request at a time. In general, such requests are "think-time" limited and therefore non blocking, so this seems not to be a problem in practice. 3. It's important that this set of control functions flow over the same control connection that's used for commands (ie. these functions need to flow through the command delivery pipe). Otherwise their behavior is indeterminate. An example is an "abort task" function which arrives at the target while the command to be aborted is still in transit. 4. Considering the rule of allowing only one pending task management request at a time, it might be sufficient to have the initiator budget one "credit" to be used for this purpose. > The question of the storage controller's overcommitting command queue > credits has been raised. Our initial thought was that this > would not be > allowed. But if it must be allowed, then we could extend the command > sequencing scheme to allow to target to drop commands and > later demand their > retransmission. The command sequence numbers would ensure > that, ultimately, > all commands are delivered in order, with no commands lost or > duplicated. > A good idea in my opinion. <remainder deleted> Charles
Home Last updated: Tue Sep 04 01:07:03 2001 6315 messages in chronological order |