SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    RE: Addition of CmdSN in Data-out PDU



    
    
    > -----Original Message-----
    > From: Robert Snively [mailto:rsnively@brocade.com]
    > Sent: Friday, October 12, 2001 3:56 PM
    > To: 'somesh_gupta@silverbacksystems.com'; BURBRIDGE,MATTHEW
    > (HP-UnitedKingdom,ex2); 'Binford, Charles'; ips@ece.cmu.edu
    > Subject: RE: Addition of CmdSN in Data-out PDU
    > 
    > 
    > I have two small questions that would help me understand this.
    > 
    > How do you know that unsolicited data is expected?  By nature,
    > unsolicited data is received as a "maximum surprise" which can
    > only be determined after unpacking and parsing at least a
    > part of the command structure, possibly even including the
    > SCSI command (although there are some hints contained in the
    > command header information).
    
      The F bit in the cmd PDU indicates whether unsolicited data
      PDUs should be expected for a particular SCSI command or
      not. There can be multiple unsolicited data PDUs for a
      particular command, and the last unsolicited data PDU
      for a command should have the F bit set. I assume that
      we use TTT = 0xffffffff to determine that this is an
      unsolicited data PDU. So yes, it would not be possible
      to do unsynchronized parallel processing of a packet
      containing a command and a packet containing unsolicited
      data for it.
    > 
    > How can you constrain a generic system to posting the 
    > unsolicited data in the same order that the commands were
    > emitted? 
    
      That is a protocol requirement.
    
    > In general, I would have expected the system to
    > be emitting command followed immediately by the corresponding
    > unsolicited data.  If that is not the case, it means that there
    > was a delay in obtaining the unsolicited data for transfer and
    > that the delay was sufficient to allow the insertion of commands.
    > If the delay is that large (and probably variable), the enforcement
    > of transfer of unsolicited data in the same order as the 
    > commands are emitted seems to me to be a significant challenge,
    > and certainly shouldn't be required as normal behavior.  While it
    > would make things simpler for targets (already challenged by
    > unsolicited data), it seems to me that it would make things 
    > much more complex for initiators.
    
      I am not quite sure why we have the restriction. Julian
      should be able to shed more light on it. I think Costa
      had some deadlock scenario if ordering was not enforced
      (but I think that was before a command credit mechanism
      was mandated). However with multiple data PDUs, if some
      sort of ordering/completion rules are not mandated, there
      will be deadlock.
    
      One scenario that you do not mention is where an adapter
      might allow commands to pass data to reduce latency.
    > 
    > Bob
    > 
    > > -----Original Message-----
    > > From: Somesh Gupta [mailto:somesh_gupta@silverbacksystems.com]
    > > Sent: Friday, October 12, 2001 2:51 PM
    > > To: BURBRIDGE,MATTHEW (HP-UnitedKingdom,ex2); 'Binford, Charles';
    > > ips@ece.cmu.edu
    > > Subject: RE: Addition of CmdSN in Data-out PDU
    > > 
    > > 
    > > Matthew,
    > > 
    > > Since the unsolicited data does not follow the
    > > command, you need the link list. But since the
    > > unsolicited data must be sent in the same order
    > > as the commands, a link list is enough.
    > > 
    > > Let us say that you have 8 commands. The ones
    > > for which we expect unsolicted data are marked
    > > as Cnn(ud). And I have marked the unsolicted
    > > data PDUs as UD(nn). The (nn) with data implies
    > > that it is implicit and not actually carried with
    > > the PDU itself.
    > > 
    > > C01(ud) C02(ud) C03(ud) C04 C05 C06(ud) UD(01) --->
    > > --> C07(ud) UD(02) UD(03) D04 D04 D05 D05 UD(06) --->
    > > --> UD(07) C08(ud) UD(08) --->
    > > 
    > > After the target receives the command C01, C02, and C03
    > > for which it expects unsolicited data, it puts them in
    > > a link list. It also receives C04 and C05 for which
    > > unsolicited data is not expected and they don't go
    > > on the list. It then receives C06 for which unsolicited
    > > data is expected, and it is added to then end of the list.
    > > Then an unsolicited data PDU is received. It must go
    > > with the command at the head of the list which is C01.
    > > Use the ITT to make sure and you can then take C01 off
    > > the list and so on.
    > > 
    > > Somesh
    > > 
    > > 
    > > > -----Original Message-----
    > > > From: owner-ips@ece.cmu.edu 
    > > [mailto:owner-ips@ece.cmu.edu]On Behalf Of
    > > > BURBRIDGE,MATTHEW (HP-UnitedKingdom,ex2)
    > > > Sent: Friday, October 12, 2001 7:53 AM
    > > > To: 'Binford, Charles'; ips@ece.cmu.edu
    > > > Subject: RE: Addition of CmdSN in Data-out PDU
    > > >
    > > >
    > > > Charles,
    > > >
    > > > As you have described the spec states that "that 
    > > unsolicited data MUST be
    > > > sent in the same order as the commands".  This is not the same as
    > > > unsolicited data must follow the command associated with 
    > > it:  For example:
    > > >
    > > > (Cx = SCSI Command PDU, Dx = The unsolicited data PDUs. The 
    > > x in all the
    > > > example can be the ITT. It is not the CmdSN.
    > > >
    > > > This is allowed:
    > > >
    > > >   C1 C2 C3 D1 D2 C4 D3 D4
    > > >
    > > > and the target will have to use the ITT to associate the 
    > > data with the
    > > > command.
    > > >
    > > > Matthew
    > > >
    > > >
    > > > -----Original Message-----
    > > > From: Binford, Charles [mailto:CBinford@pirus.com]
    > > > Sent: Friday, October 12, 2001 2:50 PM
    > > > To: ips@ece.cmu.edu
    > > > Subject: RE: Addition of CmdSN in Data-out PDU
    > > >
    > > >
    > > > I have not verify version 8 is still the same, but version 07-97
    > > > had a rule
    > > > that unsolicited data MUST be sent in the same order as the 
    > > commands.
    > > >
    > > > Thus, there is no need for a search on the ITT.  The target 
    > > just needs to
    > > > keep of linked list of I/Os waiting on unsolicited data.  
    > > New commands are
    > > > added to the tail, any unsolicited data *should* be associated
    > > > with the I/O
    > > > at the head of the list.  The ITT is used as a sanity check and
    > > > you're done.
    > > >
    > > > What am I missing?
    > > >
    > > > Charles Binford
    > > > Pirus Networks
    > > > 316.315.0382 x222
    > 
    


Home

Last updated: Fri Oct 12 20:17:28 2001
7218 messages in chronological order