|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: iSCSI: Out Of Sequence due to null sequence with multipleconnections.That might interfere with ITT reuse. Julo Sandeep Joshi <sandeepj@research.bell-labs.com> on 03/04/2001 19:45:44 Please respond to Sandeep Joshi <sandeepj@research.bell-labs.com> To: Black_David@emc.com cc: dotis@sanlight.net, ips@ece.cmu.edu Subject: Re: iSCSI: Out Of Sequence due to null sequence with multipleconnections. There is probably more to this than meets the eye, in which case do please let me know where I err.. Is it not possible to use the refTaskTag in task management command to introduce "state" at the target ? Specifically, 1) send task management command with immediate delivery(cmdSN=0). 2) if iSCSI target sees a non-existing refTaskTag, it uses that fact to create some "state" at the target. (NOTE: we dont know if the task had already completed ??) 3) When actual task arrives, it gets dropped since iSCSI sees that for that refTaskTag, state=must abort. But there is still the question.. 1) when do we delete that target "state" ? there is no endCmdSN or refCmdSN. -sandeep Black_David@emc.com wrote: > > Let me apologize for unintentionally stepping on Doug > in the meeting. Due to the time squeeze, I neglected > to ask for other issues at the end of the iSCSI discussion > - sorry about that. > > I'm going to back off and try to take a high level view of > this and see what sort of observations emerge. When a SCSI > task management command pops out of an iSCSI TCP connection > at the target, there are four places that the SCSI operations > it affects could be: > > (1) Executing in SCSI. > (2) Queued to SCSI for execution, but not executing. > (3) Queued in iSCSI waiting for command sequencing. > (4) In-flight. > > (2) includes the "resource limitations between the > sequencer and the target that may lead to a stall or > a long term delay". > > (1) and (2) are the easy cases - the SCSI implementation > must apply the task management command to executing tasks, > and should perform the obvious "peephole optimization" to > the commands queued for execution (i.e., if they're to be > aborted, abort them and send the response(s) without starting > execution). In essence, this models a command as crossing > the boundary from iSCSI to SCSI the moment that iSCSI is > prepared to give it to SCSI (i.e., any queue and related > resource limitations are on SCSI's side of the line). > > (4) is hard. One SCSI task management command generates one > response. That response can either be generated immediately > (command arrives, is passed to SCSI, SCSI does its thing) or > at the right point in the sequence (command arrives, is > sequenced by iSCSI, passed to SCSI at the right point in the > sequence, and SCSI does its thing), but NOT both. As things > currently stand, having a task management command apply to > in-flight commands requires sending the task management > command for ordered delivery - so if it's desired to have > the task management command take immediate effect and also > catch everything in flight, it's going to have to be sent > twice. I'm not enthusiastic about the idea of the task > management command taking immediate effect but delaying the > response until everything in flight that might be affected > arrives, as I suspect the Initiator would like to know what > happened sooner rather than later. > > (3) is "interesting". The results of applying a SCSI task > management command to a SCSI operation are known only to > SCSI, and hence asking that a command stuck in the iSCSI > sequencer be affected immediately by a task management > command is asking that the task management command have > the side effect of changing some of the commands it affects > to immediate delivery so that it can immediately do its > (SCSI) thing to them. I wouldn't want to mandate this, > nor would I want to prohibit it, BUT ... if the above > discussion of in-flight commands is correct, I would > observe that the application on the Initiator side > can't tell the difference between commands that are in-flight > vs. waiting for something in-flight on another connection, > and hence is going to have to issue the task management > command for ordered delivery if it wants to affect operations > in either place (and issue a second copy if it wants > immediate action). > > The upshot is that, aside from a longer discussion of this > issue, I'm not sure anything needs to be changed. Comments? > > Thanks, > --David > > --------------------------------------------------- > David L. Black, Senior Technologist > EMC Corporation, 42 South St., Hopkinton, MA 01748 > +1 (508) 435-1000 x75140 FAX: +1 (508) 497-8500 > black_david@emc.com Mobile: +1 (978) 394-7754 > ---------------------------------------------------
Home Last updated: Tue Sep 04 01:05:11 2001 6315 messages in chronological order |